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)

  1. 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 fichier web.xml.

    Exemple 15.11. Configurationweb.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>
  2. Créer un domaine de sécurité pour SP

    Créer un domaine de sécurité qui utilise SAML2LoginModule. 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>
  3. Configurer la valve SP

    Pour configurer la valve du SP, créer un fichier jboss-web.xml dans le répertoire WEB-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>
  4. Configurer le fichier de configuration PicketLink (picketlink.xml)

    Voici un exemple de configuration picketlink-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épertoire WEB-INF de votre application. Cependant, vous pourrez configurer un chemin personnalisé vers un picketlink.xml externe à l'application :
    1. Option : configurer un chemin personnalisé vers picketlink.xml

      Ajouter deux paramètres à l'élément valve du WEB-INF/jboss-web.xml de votre application : configFile indiquant le chemin vers picketlink.xml, et timerInterval 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>
  5. Déclare les dépendances sur le module PicketLink (META-INF/MANIFEST.MF, ou jboss-deployment-structure.xml)

    L'application web exige aussi qu'une dépendance soit définie dans META-INF/MANIFEST.MF ou dans jboss-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>