15.7.4. Configuration du fournisseur de services (SP) qui utilise la liaison HTTP/POST
Le fournisseur de services ou Service Provider (SP) peut correspondre à une instance de serveur JBoss EAP.
Procédure 15.2. Configuration du fournisseur de services (SP)
Configurer la sécurité de l'application web pour le SP
L'application web à configurer en tant que SP doit avoir une sécurité basée FORM activée dans son fichierweb.xml
.Exemple 15.11. Configuration
web.xml
dans SP<display-name>SP</display-name> <description>SP</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>SP</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>SP 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 SP Application </description> <role-name>manager</role-name> </security-role> </web-app>
Créer un domaine de sécurité pour SP
Créer un domaine de sécurité qui utiliseSAML2LoginModule
. Voici un exemple de configuration :<security-domain name="sp" cache-type="default"> <authentication> <login-module code="org.picketlink.identity.federation.bindings.jboss.auth.SAML2LoginModule" flag="required"/> </authentication> </security-domain>
Configurer la valve SP
Pour configurer la valve du SP, créer un fichierjboss-web.xml
dans le répertoireWEB-INF
de votre application web SP.Exemple 15.12. Configuration de fichier
jboss-web.xml
pour les valves SP<jboss-web> <security-domain>sp</security-domain> <context-root>sales-post</context-root> <valve> <class-name>org.picketlink.identity.federation.bindings.tomcat.sp.ServiceProviderAuthenticator</class-name> </valve> </jboss-web>
Configurer le fichier de configuration PicketLink (
picketlink.xml
)Voici un exemple de configurationpicketlink-idfed.xml
pour le SP. Dans ce fichier de configuration, vous fournissez l'URL pour le SP et l'IDP, avec les handlers correspondants pour le SP.Exemple 15.13. Configuration
picketlink.xml
<PicketLink xmlns="urn:picketlink:identity-federation:config:2.1"> <PicketLinkSP xmlns="urn:picketlink:identity-federation:config:2.1" ServerEnvironment="tomcat" BindingType="REDIRECT"> <IdentityURL>${idp.url::http://localhost:8080/idp/}</IdentityURL> <ServiceURL>${sales-post.url::http://localhost:8080/sales-post/}</ServiceURL> </PicketLinkSP> <Handlers xmlns="urn:picketlink:identity-federation:handler:config:2.1"> <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. 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.14. 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.15. 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>