<page xmlns="http://projectmallard.org/1.0/"
      type="topic" style="task"
      id="discovery" xml:lang="fr">

<info>
  <link type="guide" xref="index" group="discovery"/>
  <desc>Système qui permet d'afficher l'IdP préféré de l'utilisateur.</desc>
  <revision pkgversion="20120605" version="1.0" date="10-06-2012" status="final"/>
  <credit type="author">
    <name>Thomas Noël</name>
    <email>tnoël@entrouvert.com</email>
  </credit>
  <credit type="maintainer">
    <name>Pierre Cros</name>
    <email>pcros@entrouvert.com</email>
  </credit>
</info>

<title>Intégration d'un «Discovery Service»</title>

<p>
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.
</p>
<p>Techniquement, cette préférence est enregistrée via un <em>cookie</em> 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).
</p>

<section id="protocole">
  <title>Protocole</title>
  <p>Le protocole utilisé est décrit dans <link
  href="http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-idp-discovery.html">http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-idp-discovery.html</link>
  avec l'extension <link
  href="http://discojuice.org/docs/latest/discoreadwrite">DiscoJuiceReadWrite</link>.
  Le fonctionnement du discovery est compatible avec celui de <link
  href="http://discojuice.org">DiscoJuice</link>.</p>
  <p>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).</p>
  <p>L'implémentation du protocole intégrée dans UnivNautes est disponible
  séparément sur <link
  href="http://repos.entrouvert.org/simple-disco-store.git/">http://repos.entrouvert.org/simple-disco-store.git/</link></p>.
</section>

<section id="activation">
  <title>Activation du Discovery Service</title>
  <p>L'activation se fait via deux options présentes dans l'onglet «UnivNautes» de la page «Services / Captive Portal» :</p>

  <terms>

  <item>
  <title>IdP Discovery Service endpoints (read)</title>
  <p>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.</p>
  <note>
  <p>Un tel service est mis en place par Entr'ouvert pour la fédération
  Éducation-Recherche (Renater) :</p>
  <code>https://www.identity-hub.com/disco/renater/store</code>
  <p>Vous pouvez l'indiquer en tête de liste, et ajouter l'adresse IP
  correspondante <code>94.23.231.86</code> dans la liste blanche des IPs
  (paramètre <em>Whitelist statics IP</em> de la même page).</p>
  </note>
  </item>

  <item>
  <title>IdP Discovery Service endpoints (write)</title>
  <p>Liste d'URL «IdP Discovery Service» à contacter pour <em>enregistrer</em>
  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.</p>
  <note>
  <p>Un service compatible DiscoJuiceReadWrite mis en place par Entr'ouvert
  est disponible pour la fédération Éducation-Recherche (Renater) :</p>
  <code>https://www.identity-hub.com/disco/renater/store</code>
  <p>Vous pouvez l'indiquer en tête de liste, et ajouter l'adresse IP
  correspondante <code>94.23.231.86</code> dans la liste blanche des IPs
  (paramètre <em>Whitelist statics IP</em> de la même page).</p>
  </note>

  </item>
  </terms>

</section>

<section id="verification">
<title>Vérification du bon fonctionnement</title>
<p>Le bon fonctionnement est directement visible aux utilisateurs :</p>
  <list>
  <item><p>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 <em>cookie</em>).</p></item>
  <item><p>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.
  </p></item>
  </list>
<p>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.</p>
</section>

</page>
