15.7.3. Configurer le fournisseur d'identités
IDP (Identity Provider) ou fournisseur d'identité est une instance de serveur JBoss EAP.
Procédure 15.1. Configurer le fournisseur d'identités IDP
Configurer la sécurité de l'application web pour l'IDP
Configurer une application web comme fournisseur d'identité.Note
L'utilisation de la sécurité d'application web basée FORM est conseillée car elle donne la possibilité de personnaliser une page de connexion.Ce qui suit est un exemple de configurationweb.xml
Exemple 15.6. Configuration
web.xml
dans IDP<display-name>IDP</display-name> <description>IDP</description> <!-- Define a security constraint that gives unlimited access to images --> <security-constraint> <web-resource-collection> <web-resource-name>Images</web-resource-name> <url-pattern>/images/*</url-pattern> </web-resource-collection> </security-constraint> <!-- Define a Security Constraint on this Application --> <security-constraint> <web-resource-collection> <web-resource-name>IDP</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>manager</role-name> </auth-constraint> </security-constraint> <!-- Define the Login Configuration for this Application --> <login-config> <auth-method>FORM</auth-method> <realm-name>IDP Application</realm-name> <form-login-config> <form-login-page>/jsp/login.jsp</form-login-page> <form-error-page>/jsp/loginerror.jsp</form-error-page> </form-login-config> </login-config> <!-- Security roles referenced by this web application --> <security-role> <description> The role that is required to log in to the IDP Application </description> <role-name>manager</role-name> </security-role> </web-app>
Créer un domaine de sécurité pour IDP
Créer un domaine de sécurité avec des mécanismes d'authentification et d'autorisation définis pour IDP. Voir Section 13.9, « Utiliser un domaine de sécurité dans votre application » pour obtenir des informations supplémentaires.Configurer les Valves IDP
Créer un fichierjboss-web.xml
dans le répertoireWEB-INF
de votre application web IDP pour configurer les valves de l'IDP. Ce qui suit est un exemple du fichierjboss-web.xml
.Exemple 15.7. Configuration de fichier
jboss-web.xml
pour les valves IDP<jboss-web> <security-domain>idp</security-domain> <context-root>idp</context-root> <valve> <class-name>org.picketlink.identity.federation.bindings.tomcat.idp.IDPWebBrowserSSOValve</class-name> </valve> </jboss-web>
Configurer le fichier de configuration PicketLink (
picketlink.xml
)Voici un exemple de configurationpicketlink-idfed.xml
. Dans ce fichier de configuration, vous fournissez l'URL ajouté comme émetteur dans les assertions SAML2 sortantes pour les fournisseurs de services et l'IDP.Exemple 15.8. Configuration
picketlink.xml
<PicketLink xmlns="urn:picketlink:identity-federation:config:2.1"> <PicketLinkIDP xmlns="urn:picketlink:identity-federation:config:2.1"> <IdentityURL>http://localhost:8080/idp/</IdentityURL> </PicketLinkIDP> <Handlers xmlns="urn:picketlink:identity-federation:handler:config:2.1"> <Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2IssuerTrustHandler" /> <Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2LogOutHandler" /> <Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2AuthenticationHandler" /> <Handler class="org.picketlink.identity.federation.web.handlers.saml2.RolesGenerationHandler" /> </Handlers> </PicketLink>
Par défaut,picketlink.xml
se situe dans le répertoireWEB-INF
de votre application web IDP. Cependant, vous pourrez configurer un chemin personnalisé vers unpicketlink.xml
externe à l'application :Option : configurer un chemin personnalisé vers
picketlink.xml
Ajouter deux paramètres à l'élément valve duWEB-INF/jboss-web.xml
de votre application :configFile
indiquant le chemin verspicketlink.xml
, ettimerInterval
qui indique l'intervalle qu'il faut pour charger la configuration en millisecondes. Par exemple :<valve> <class-name>...</class-name> <param> <param-name>timerInterval</param-name> <param-value>5000</param-value> </param> <param> <param-name>configFile</param-name> <param-value>path-to/picketlink.xml</param-value> </param> </valve>
Déclare les dépendances sur le module PicketLink (
META-INF/MANIFEST.MF
, oujboss-deployment-structure.xml
)L'application web exige aussi qu'une dépendance soit définie dansMETA-INF/MANIFEST.MF
ou dansjboss-deployment-structure.xml
pour trouver les classes de PicketLink puissent être localisées.Exemple 15.9. Définir la dépendance dans
META-INF/MANIFEST.MF
Manifest-Version: 1.0 Build-Jdk: 1.6.0_24 Dependencies: org.picketlink
Exemple 15.10. Définir la dépendance dans
META-INF/jboss-deployment-structure.xml
<jboss-deployment-structure> <deployment> <dependencies> <module name="org.picketlink" /> </dependencies> </deployment> </jboss-deployment-structure>