15.7.6. Configurer un sélecteur de comptes dynamiques (Dynamic Account Chooser) auprès d'un fournisseur de services

Si un SP (Service Provider) est configuré avec plusieurs IDP (Identity Providers), PicketLink peut être configuré pour inviter l'utilisateur à choisir l'IDP à utiliser pour authentifier leurs identitfiants.

Procédure 15.4. Configurer un sélecteur de comptes dynamiques (Dynamic Account Chooser) auprès d'un fournisseur de services

  1. Configurer la valve jboss-web.xml dans le répertoire WEB-INF de votre application web SP.

    Exemple 15.16. Configuration de fichier jboss-web.xml pour les Sélecteurs de comptes SP

    <jboss-web>
      <security-domain>sp</security-domain>
      <context-root>accountchooser</context-root>
      <valve>
        <class-name>org.picketlink.identity.federation.bindings.tomcat.sp.AccountChooserValve</class-name>
      </valve>
      <valve>
        <class-name>org.picketlink.identity.federation.bindings.tomcat.sp.ServiceProviderAuthenticator</class-name>
      </valve>
    </jboss-web>
    AccountChooserValve a les options de configuration suivantes :
    DomainName
    Le nom de domaine à utiliser par le cookie envoyé dans le navigateur de l'utilisateur.
    CookieExpiry
    La durée d'expiration du cookie en secondes. La valeur par défaut est -1, ce qui veut dire que le cookie expire quand le navigateur est fermé.
    AccountIDPMapProvider
    Le nom complet de l'implémentation d'IDP Mapping. La valeur par défaut correspond à un fichier de propriétés idpmap.properties qui se trouve dans le répertoire WEB-INF directory of de votre application web SP. Cette implementation doit implémenter org.picketlink.identity.federation.bindings.tomcat.sp.AbstractAccountChooserValve.AccountIDPMapProvider.
    AccountChooserPage
    Le nom de la page HTML/JSP qui liste les divers comptes IDP. La valeur par défaut est /accountChooser.html.
  2. Définir le mappage des IDP. Il s'agit par défaut d'un fichier de propriétés idpmap.properties qui se trouve dans le répertoire WEB-INF de votre application web SP.

    Exemple 15.17. Configuration idpmap.properties

    DomainA=http://localhost:8080/idp1/
    DomainB=http://localhost:8080/idp2/
  3. Créer une page HTML dans votre application web de SP pour que l'utilisateur puisque choisir l'IDP. Par défaut, ce fichier est accountChooser.html. L'URL de chacun des IDP doit avoir le paramètre idp qui spécifie le nom de l'IDP répertorié dans idpmap.properties.

    Exemple 15.18. accountChooser.html Configuration

    <html>
      ...
      <a href="?idp=DomainA">DomainA</a>
      <hr/>
      <a href="?idp=DomainB">DomainB</a>
      ...
    </html>