Intégration d'un «Discovery Service»

L'interface de connexion d'UnivNautes intègre un mécanisme permettant de retenir le fournisseur d'identité (IdP) préféré de l'utilisateur sur un système central. Lorsque l'utilisateur utilise ensuite un UnivNautes connecté à ce même système central, l'IdP par défaut est son IdP préféré. Il peut alors se connecter en un seul clic.

Techniquement, cette préférence est enregistrée via un cookie placé sur un serveur central, qui pourra être utilisé par d'autres UnivNautes, et plus généralement par d'autres fournisseurs de services (le protocole étant standard).

Protocole

Le protocole utilisé est décrit dans http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-idp-discovery.html avec l'extension DiscoJuiceReadWrite. Le fonctionnement du discovery est compatible avec celui de DiscoJuice.

Note : UnivNautes permet de déclarer plusieurs services disco centraux, même s'il est grandement conseillé de n'en utiliser qu'un ou deux (pour éviter trop de requêtes).

L'implémentation du protocole intégrée dans UnivNautes est disponible séparément sur http://repos.entrouvert.org/simple-disco-store.git/

Activation du Discovery Service

L'activation se fait via deux options présentes dans l'onglet «UnivNautes» de la page «Services / Captive Portal» :

IdP Discovery Service endpoints (read)

Liste d'URL «IdP Discovery Service» à contacter pour déterminer l'IdP préféré de l'utilisateur. Vous pouvez en indiquer plusieurs, mais pas trop : ces services seront tous contactés par chaque utilisateur qui affichera la page de connexion. Attention à bien ajouter les IP correspondantes dans la liste blanche locale.

Un tel service est mis en place par Entr'ouvert pour la fédération Éducation-Recherche (Renater) :

https://www.identity-hub.com/disco/renater/store

Vous pouvez l'indiquer en tête de liste, et ajouter l'adresse IP correspondante 5.135.221.2 dans la liste blanche des IPs (paramètre Whitelist statics IP de la même page).

IdP Discovery Service endpoints (write)

Liste d'URL «IdP Discovery Service» à contacter pour enregistrer l'IdP préféré de l'utilisateur (implémentant le protocole DiscoJuiceReadWrite). Vous pouvez en indiquer plusieurs, mais pas trop : ces services seront tous contactés par chaque utilisateur qui se connectera. Attention à bien ajouter les IP correspondantes dans la liste blanche locale.

Un service compatible DiscoJuiceReadWrite mis en place par Entr'ouvert est disponible pour la fédération Éducation-Recherche (Renater) :

https://www.identity-hub.com/disco/renater/store

Vous pouvez l'indiquer en tête de liste, et ajouter l'adresse IP correspondante 5.135.221.2 dans la liste blanche des IPs (paramètre Whitelist statics IP de la même page).

Vérification du bon fonctionnement

Le bon fonctionnement est directement visible aux utilisateurs :

  • Se rendre sur la page de connexion d'UnivNautes et choisir un IdP parmis la liste. Ce choix va être enregistré sur le disco central de stockage (dans un cookie).

  • Revenir sur la page de connexion (éventuellement en se déconnectant d'abord). Lors de l'affichage de la page, le disco central est interrogé et l'IdP présenté en tête de liste est remplacé par l'IdP choisi auparavant.

En cas de non fonctionnement, vérifier que les URLs indiqués dans la configuration sont exacts et que les adresses IP correspondantes aux machines cibles sont bien ajoutés dans la liste blanche d'adresses IP. Si besoin, utiliser les outils de déboguage du navigateur pour tracer les requêtes https effectuées (les requêtes vers les discos doivent être visibles). Regarder aussi les cookies placées sur le navigateur par les discos.