Configuration des ensembles de règles et des liaisons pour la communication avec le service de jeton de sécurité (STS)

La configuration des ensembles de règles et des documents de liaison permet aux clients de services web de demander des assertions SAML à un service de jeton de sécurité (STS) externe.

Avant de commencer

Après l'installation, vous devez créer un nouveau profil de serveur, ou ajouter des paramètres de configuration SAML à un profil existant. Pour plus d'informations, lisez la rubrique relative à la définition de la configuration SAML.

Pourquoi et quand exécuter cette tâche

WebSphere Application Server avec SAML prend en charge les clients de Services Web à l'aide de leurs ensembles de règles de sécurité et de leurs liaisons lors des communications avec un service STS externe. Les clients de services Web utilisent des ensembles de règles et des liaisons pour communiquer avec le fournisseur de services Web cible. Un client de services web utilise deux associations d'ensemble de règles : l'un pour communiquer avec le fournisseur de services Web cible, l'autre pour communiquer avec le service STS. Les ensembles de règles et les liaisons utilisés pour les communications avec le fournisseur de services web cible sont associés au client de services Web. En revanche, ceux qui activent les communications avec le service STS ne lui sont pas directement associés. Ils sont définis comme des propriétés personnalisées dans le document de liaison du client. Des liaisons générales ou spécifiques à une application peuvent être utilisées pour communiquer avec le service STS. L'utilisation d'une liaison générale pour accéder à un service STS est très simple : il suffit d'entrer son nom dans les propriétés personnalisées.

La configuration d'une liaison spécifique à une application en vue de l'accès à un STS est plus compliquée. La console administrative est conçue pour gérer des associations d'ensembles de règles pour communiquer avec un fournisseur de services web. Elle n'est pas prévue pour gérer un second jeu d'associations d'ensembles de règles pour communiquer avec un service STS. En suivant la procédure ci-dessous, vous pouvez cependant l'utiliser pour la gestion d'une association d'ensembles de règles pour l'accès à un STS.

Associez à un client de services web l'ensemble de règles utilisé pour l'accès au service STS, puis créez ou modifiez une liaison spécifique à une application. Une fois la configuration de la liaison terminée, dissociez l'ensemble de règle et la liaison du client de services Web. Cette opération est indispensable, car l'étape suivante consiste à associer l'ensemble de règles et les liaisons pour communiquer avec le fournisseur de services Web. Les liaisons spécifiques à une application qui ont été dissociées ne sont pas supprimées du système de fichiers, et les propriétés personnalisées de liaisons de client de services Web peuvent les référencer.

Dans la procédure, l'ensemble de règles d'application par défaut Username WSHTTPS est utilisé pour illustrer les étapes de la configuration de l'accès au service STS. La procédure est applicable à d'autres ensembles de règles. La procédure utilise également l'application de services Web JaxWSServicesSamples. JaxWSServicesSamples n'est pas installée par défaut.

Procédure

  1. Importez l'ensemble de règles par défaut Username WSHTTPS. Dans l'exemple suivant, les règles par défaut Username WSHTTPS sont utilisées pour illustrer la procédure, mais un autre ensemble de règles peut servir à configurer les liaisons, s'il répond aux critères du service STS externe.
    1. Cliquez sur Services > Ensembles de règles > Ensembles de règles de l'application.
    2. Cliquez sur Importer.
    3. Sélectionnez A partir du référentiel par défaut.
    4. Sélectionnez l'ensemble de règles WSHTTPS Default.
    5. Cliquez sur OK pour importer l'ensemble de règles.
  2. Associez un ensemble de règles pour le client sécurisé. Cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de client de service. Les étapes qui font partie des opérations d'association ou de dissociation d'un ensemble de règles, et de la configuration de la liaison du client sécurisé, ne s'imposent que si une liaison spécifique à l'application est utilisée pour l'accès au service STS externe. Vous pouvez passez ces étapes, et reprendre à l'étape de configuration de la communication avec le STS, si vous utilisez une liaison générale pour accéder au STS externe.
    1. Cochez la case de la ressource client de services web.
    2. Cliquez sur Lier un ensemble de règles du client.
    3. Sélectionnez l'ensemble de règles Username WSHTTPS default.
    Cette opération associe l'ensemble de règles au client sécurisé de services Web, comme vous l'auriez fait pour permettre au client d'application d'accéder aux services Web cible. Cependant, comme vous prévoyez d'utiliser l'ensemble de règles Username WSHTTPS pour accéder à la place à un service STS externe, l'ensemble de règles n'est associé que temporairement au client de services Web. Le but de cette opération est de pouvoir utiliser la console administrative pour créer ou modifier le document de liaison du client.
  3. Configurez la liaison du client sécurisé.
    1. Sélectionnez à nouveau la ressource client de services web.
    2. Dans Liaisons et ensembles de règles du client de services, cliquez sur Affecter une liaison.
    3. Cliquez sur Nouvelle liaison spécifique à l'application pour créer une liaison spécifique à l'application.
    4. Indiquez un nom de configuration de liaison pour la nouvelle liaison spécifique à l'application. Dans cet exemple, le nom de liaison est SamlTCSample.
    5. Ajoutez le type de règle SSL transportà la liaison. Si vous le souhaitez, vous pouvez modifier les paramètres NodeDefaultSSLSettings. Cliquez sur Sécurité > Certificat SSL et gestion des clés > Configurations SSL > NodeDefaultSSLSettings.
  4. Facultatif : Vous pouvez créer une liaison de transport HTTP en suivant les étapes ci-dessus si vous désirez configurer un nom d'utilisateur et un mot de passe à ajouter à l'en-tête HTTP, ou pour configurer un proxy. Si vous ne créez pas de liaison de transport HTTP, l'environnement d'exécution des services Web utilise les paramètres de transport HTTP par défaut.
  5. Ajoutez le type de règle WS-Security à la liaison, puis modifiez les paramètres d'authentification.
    1. Cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de client de services > SamlTCSample > Ajouter > WS-Security > Authentification et protection > request:uname_token.
    2. Cliquez sur Apply.
    3. Sélectionnez Gestionnaire d'appel.
    4. Définissez un nom d'utilisateur et un mot de passe (avec la confirmation du mot de passe) pour authentifier le client de services Web auprès du service STS externe.
    5. Cliquez sur OK et Sauvegarder.
  6. Après la sauvegarde des paramètres de liaison, retournez au panneau Liaisons et ensembles de règles de client de service pour dissocier l'ensemble de règles et les liaisons.
    1. Cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de client de service.
    2. Cochez la case de la ressource client de services Web.
    3. Cliquez sur Dissocier un ensemble de règles du client.
    La configuration de liaison spécifique à l'application créée aux étapes précédentes n'est pas supprimée du système de fichiers lorsque l'ensemble de règles est dissocié. La liaison créée pour accéder au STS est donc encore utilisable.
  7. Importez le certificat SSL depuis le STS externe.
    1. Cliquez sur Sécurité > Certificat SSL et gestion des clés > Gérer les configurations de sécurité du noeud final > extrémité du serveur ou du noeud > Magasins de clés et certificats > NodeDefaultTrustStore > Certificats de signataires.
    2. Cliquez sur Extraire d'un port.
    3. Entrez le nom d'hôte et le numéro de port du serveur STS externe, et affectez un alias au certificat. Utilisez le port SSL du STS.
    4. Cliquez sur Récupérer les informations du signataire.
    5. Cliquez sur Appliquer et Sauvegarder pour copier de certificat extrait dans l'objet NodeDefaultTrustStore.
  8. Facultatif : Si des modifications supplémentaires doivent être effectuées dans la configuration wstrustClientBinding, et si la propriété wstrustClientBinding pointe vers une liaison spécifique à l'application, vous devez associer cette liaison au client de services Web avant d'effectuer les modifications. L'association est temporaire. Comme indiqué précédemment, vous pouvez dissocier du client de services Web la liaison spécifique à l'application lorsque la modification est terminée.

Résultats

Une fois ces étapes franchies, le client de services web est prêt à envoyer des requêtes au service STS externe. Cette fonction a été activée par la mise en oeuvre des conditions et des paramètres suivants au cours de la procédure :
  • Association d'un ensemble de règles et de liaisons qui propagent les jetons SAML. Par exemple, associez l'ensemble de règles par défaut SAML11 Bearer WSHTTPS Default et la liaison générale SAML Bearer Client Sample au client de services Web.
  • L'ensemble de règles par défaut Username WSHTTPS et la liaison spécifique à une application SamlTCSample sont référencés dans la liaison modèle SAML Bearer Client Sample et sont configurés pour accéder au STS externe.
  • Le certificat SSL du service STS externe a été récupéré et ajouté au fichier de clés certifiées NodeDefaultTrustStore.
  • Pour vérifier l'activation de la fonction, vous pouvez configurer le paramètre de trace : com.ibm.ws.wssecurity.*=all=enabled. La trace montre que les assertions SAML sont émises par un service STS externe, par exemple :
    [8/23/09 18:26:59:252 CDT] 0000001f TrustSecurity 3   Security Token Service response:
    [8/23/09 18:26:59:392 CDT] 0000001f TrustSecurity 3   
    <?xml version="1.0" encoding="UTF-8"?><s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" 
       xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <s:Header>
            <a:Action s:mustUnderstand="1">http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTRC/IssueFinal</a:Action>
            <a:RelatesTo>urn:uuid:663A7B27BA8EB2CF9D1251070029934</a:RelatesTo>
            <o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" s:mustUnderstand="1">
                <u:Timestamp u:Id="_0">
                    <u:Created>2009-08-23T23:26:57.664Z</u:Created>
                    <u:Expires>2009-08-23T23:31:57.664Z</u:Expires>
                </u:Timestamp>
            </o:Security>
        </s:Header>
        <s:Body>
          <trust:RequestSecurityTokenResponseCollection xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
            <trust:RequestSecurityTokenResponse>
              <trust:Lifetime>
                <wsu:Created 
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2009-08-23T23:26:57.648Z</wsu:Created>
                <wsu:Expires 
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2009-08-24T09:26:57.648Z</wsu:Expires>
              </trust:Lifetime>
            <wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
              <a:EndpointReference>
                 <a:Address>https://taishan.austin.ibm.com:9443/WSSampleSei/EchoService12</a:Address>
                  </a:EndpointReference>
            </wsp:AppliesTo>
            <trust:RequestedSecurityToken>
              <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" MajorVersion="1" MinorVersion="1" 
    AssertionID="_3c656382-9916-4e5f-9a16-fe0287dfc409" Issuer="http://svt193.svt193domain.com/Trust" IssueInstant="2009-08-23T23:26:57.663Z">
              <saml:Conditions NotBefore="2009-08-23T23:26:57.648Z" NotOnOrAfter="2009-08-24T09:26:57.648Z">
              <saml:AudienceRestrictionCondition>
              <saml:Audience>https://taishan.austin.ibm.com:9443/WSSampleSei/EchoService12</saml:Audience>
              </saml:AudienceRestrictionCondition>
              </saml:Conditions>
              <saml:AuthenticationStatement AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password" 
    AuthenticationInstant="2009-08-23T23:26:57.640Z">
              <saml:Subject>
              <saml:SubjectConfirmation>
              <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</saml:ConfirmationMethod>
              </saml:SubjectConfirmation>
              </saml:Subject>
              </saml:AuthenticationStatement>
                <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                <ds:SignedInfo>
                <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                <ds:Reference URI="#_3c656382-9916-4e5f-9a16-fe0287dfc409">
                <ds:Transforms>
                <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                <ds:DigestValue>YGySZX4VPv25R+oyzFpE0/T/tjs=</ds:DigestValue>
                </ds:Reference>
                </ds:SignedInfo>
                     <ds:SignatureValue>eP68...Vr08=</ds:SignatureValue>
                       <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                          <X509Data>
                            <X509Certificate>MII...ymqg3</X509Certificate>
                          </X509Data>
                        </KeyInfo>
                      </ds:Signature>
                 </saml:Assertion>
             </trust:RequestedSecurityToken>
           <trust:RequestedAttachedReference>
              <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                <o:KeyIdentifier 
    ValueType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID">_3c656382-9916-4e5f-9a16-fe0287dfc409</o:KeyIdentifier>
                </o:SecurityTokenReference>
            </trust:RequestedAttachedReference>
            <trust:RequestedUnattachedReference>
              <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                 <o:KeyIdentifier 
    ValueType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID">_3c656382-9916-4e5f-9a16-fe0287dfc409</o:KeyIdentifier>
              </o:SecurityTokenReference>
            </trust:RequestedUnattachedReference>
            <trust:TokenType>http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1</trust:TokenType>
            <trust:RequestType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue</trust:RequestType>
            <trust:KeyType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer</trust:KeyType>
            </trust:RequestSecurityTokenResponse>
            </trust:RequestSecurityTokenResponseCollection>
        </s:Body>
    </s:Envelope>

Que faire ensuite

Terminez la configuration du client et du fournisseur de services web. Pour plus d'informations, reportez-vous à la section relative à la configuration des clients et des fournisseurs pour le jeton SAML bearer (porteur).

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configsamlpsbindsts
Nom du fichier : twbs_configsamlpsbindsts.html