Configuration des clients et des fournisseurs pour le jeton SAML bearer (porteur)

Un jeton bearer SAML est un jeton SAML qui utilise la méthode de confirmation des sujets Bearer. Dans une méthode de confirmation de sujet Bearer, un expéditeur de messages SOAP n'est pas requis pour l'établissement d'une correspondance associant un jeton SAML au contenu du message SOAP conteneur. Vous pouvez configurer les associations d'ensembles de règles et les liaisons des clients et des fournisseurs pour le jeton SAML bearer.

Avant de commencer

WebSphere Application Server avec SAML contient de nombreux ensembles de règles d'application par défaut destinés au jeton SAML, et plusieurs modèles de liaisons générales pour le client et le fournisseur. Avant de pouvoir configurer les liaisons des clients et des fournisseurs pour le jeton SAML bearer, vous devez :
  • Créer un ou plusieurs profils de serveur incluant des paramètres de configuration SAML, ou ajouter des paramètres de configuration SAML à un profil existant. Pour savoir comment ajouter des paramètres de configuration SAML à un profil, lisez la rubrique relative à la définition de la configuration SAML.
  • Importer l'un des ensembles de règles par défaut suivants :
    • SAML20 Bearer WSHTTPS Default
    • SAML20 Bearer WSSecurity Default
    • SAML11 Bearer WSHTTPS Default
    • SAML11 Bearer WSSecurity Default

    Les ensembles de règles SAML11 sont presque identiques aux ensembles de règles SAML20, à ceci près que les ensembles de règles SAML20 prennent en charge le type de jeton SAML version 2.0, tandis que les ensembles de règles SAML11 prennent en charge le type de jeton SAML version 1.1.

    Deux ensembles de règles par défaut sont requis. Vous devez donc importer l'ensemble de règles Username WSHTTPS Default, ainsi qu'un des ensembles de règles bearer ci-dessous. Assurez-vous que l'ensemble de règles bearer que vous importez correspond à votre scénario ; par exemple, SAML 1.1 ou 2.0 et HTTPS ou non HTTPS.
    • SAML11 Bearer WSHTTPS Default pour les jetons SAML 1.1 utilisant HTTPS
    • SAML20 Bearer WSHTTPS Default pour les jetons SAML 1.1 utilisant HTTPS
    • SAML20 Bearer WSSecurity Default pour les jetons SAML 2.0 utilisant HTTP
    • SAML11 Bearer WSSecurity Default pour les jetons SAML 2.0 utilisant HTTP
    Pour importer ces ensembles de règles, procédez comme suit dans la console d'administration :
    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 les deux ensembles de règles par défaut désirés.

      L'ensemble de règles par défaut SAML choisi dans cette étape sera désigné par votre règle SAML appropriée dans les étapes de la procédure ci-dessous.

    5. Cliquez sur OK pour importer les ensembles de règles, puis sur Enregistrer pour enregistrer vos modifications.
  • Si les assertions SAML seront signées par le STS et que vous aurez besoin de l'évaluation sécurisée de l'émetteur (le signataire), un fichier de clés pouvant être utilisé pour l'évaluation sécurisée du certificat X.509 de l'émetteur doit être disponible. Ce fichier de clés peut contenir le certificat public de l'émetteur ou toutes les informations requises pour la génération du chemin du certificat. Les types de fichier de clés pris en charge sont les suivants : jks, jceks et pkcs12. Ce fichier sera désigné par fichier de clés certifiées dans la procédure ci-dessous.
  • La règle Username WSHTTPS Default sera utilisée pour la communication avec le STS. Si le certificat d'émetteur STS à utiliser avec SSL n'a pas été importé dans NodeDefaultSSLSettings, reportez-vous à la rubrique Extraction de signataires à partir d'un port SSL distant pour savoir comment importer ce certificat. Vous pouvez également être amené à passer en revue la rubrique Installation sécurisée pour l'extraction des signataires client dans SSL pour obtenir d'autres informations générales sur les certificats d'émetteur STS.

Pourquoi et quand exécuter cette tâche

Une règle de jeton SAML est définie par une extension CustomToken sur le serveur d'applications. Pour créer une extension CustomToken, définissez les paramètres de configuration des jetons SAML en termes de propriétés personnalisées dans les documents de liaison du client et du fournisseur. Les modèles SAML Bearer Client Sample et SAML Bearer Provider Sample pour les liaisons générales contiennent l'essentiel de la configuration pour les propriétés personnalisées.

Les liaisons des modèles de client et de fournisseur contiennent à la fois les informations de configuration pour les types de jeton SAML11 et SAML20. Ces modèles sont donc utilisables avec les ensembles de règles SAML11 et SAML20. En fonction de la façon dont vous prévoyez d'implémenter les jetons SAML, vous devez modifier les valeurs des propriétés dans les modèles de liaisons installés. Des exemples de propriétés et de valeurs de propriété sont fournis dans la procédure ci-dessous.

La procédure de modification des modèles de liaisons commence par la configuration de l'ensemble de règles associé au client de services Web, puis par la modification de l'ensemble de règles associé au fournisseur de services Web. L'exemple présenté dans la procédure utilise le modèle d'application de services Web JaxWSServicesSamples.

Procédure

  1. Configurez le client sécurisé

    Si vous allez utiliser des liaisons générales pour accéder au STS externe, ignorez cette étape pour aller à l'étape d'association des ensembles de règles et des liaisons à l'application client.

    Si vous allez utiliser des liaisons spécifiques à une application pour accéder au STS externe, effectuez les sous-étapes ci-dessous.

    1. Associez provisoirement un ensemble de règles pour le client sécurisé à l'application client des services Web, de sorte que les liaisons puissent être configurées.

      L'association d'un ensemble de règles pour le client sécurisé vous permet d'utiliser la console d'administration pour créer et ensuite modifier les liaisons de document de liaison du client. Vous devez effectuer cette action uniquement si une liaison spécifique à l'application est utilisée pour l'accès au STS externe.

      1. Dans la console d'administration, cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de client de service.
      2. Sélectionnez la ressource de client de services Web (JaxWSServicesSamples).
      3. Cliquez sur Lier un ensemble de règles du client.
      4. Sélectionnez l'ensemble de règles Username WSHTTPS default.
    2. Créez la liaison du client sécurisé.
      1. Sélectionnez de nouveau la ressource de client de services Web (JaxWSServicesSamples).
      2. Cliquez sur Affecter une liaison.
      3. Cliquez sur Nouvelle liaison spécifique à l'application pour créer une liaison spécifique à l'application.
      4. Entrez un nom de configuration de liaison pour la nouvelle liaison spécifique à l'application. Dans cet exemple, le nom de liaison est SamlTCSample.
    3. Ajoutez le type de règle de transport SSL à la liaison.

      Cliquez sur Ajouter > Transport SSL, puis sur OK.

    4. Ajoutez le type de règle WS-Security à la liaison, puis modifiez les paramètres d'authentification pour le client sécurisé.
      1. Si le type de règle WS-Security ne figure pas déjà dans la définition de liaison SamlTCSample, cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de client de service > SamlTCSample.
      2. Cliquez sur Ajouter > WS-Security > Authentification et protection > request:uname_token.
      3. Cliquez sur Apply.
      4. Sélectionnez Gestionnaire d'appel
      5. Spécifiez un nom d'utilisateur et un mot de passe pour que le client de services Web s'authentifie sur le STS externe.
      6. Cliquez sur OK, puis sur Sauvegarder.
    5. Une fois les paramètres de liaison sauvegardés, retournez au panneau Liaisons et ensembles de règles de client de service, puis dissociez l'ensemble de règles et les liaisons.
      1. Cliquez soit sur Liaisons et ensembles de règles de client de service dans le panneau de navigation de cette page, soit sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de client de service.
      2. Sélectionnez la ressource de client de services Web (JaxWSServicesSamples), puis cliquez sur Dissocier un ensemble de règles du client.

      La configuration de liaison spécifique à l'application que vous venez de créer 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 avec le client sécurisé est donc encore utilisable.

  2. Associez les liaisons et l'ensemble de règles SAML à l'application client.
    1. Associez l'ensemble de règles SAML souhaité à l'application client des services Web.
      1. Si la règle SAML ne figure pas déjà sur la page des liaisons et des ensembles de règles de client de service pour JaxWSServicesSamples, cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de client de service.
      2. Sélectionnez la ressource client de services Web.
      3. Cliquez sur Lier un ensemble de règles du client.
      4. Sélectionnez votre règle SAML appropriée pour le client des services Web.
    2. Associez la liaison générale SAML Bearer Client Sample au client.
      1. Sélectionnez de nouveau la ressource de client de services Web.
      2. Cliquez sur Affecter une liaison.
      3. Sélectionnez Saml Bearer Client Sample.
  3. Configurez les liaisons du client des services Web.

    Configurez l'URL de noeud final du service STS dans la liaison de modèle.

    1. Cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de client de service > Saml Bearer Client Sample > WS-Security > Authentification et protection.
    2. Cliquez sur gen_saml11token ou gen_saml20token dans la table des jetons d'authentification.
    3. Cliquez sur Gestionnaire d'appel.
    4. Modifiez la propriété stsURI de sorte quelle spécifie le noeud final du service STS.

      Cette propriété n'est pas requise pour un émetteur de jeton auto-généré sur un serveur intermédiaire. Cependant, si elle est définie pour l'émetteur de jeton auto-généré sur un serveur intermédiaire, elle est paramétrée sur www.websphere.ibm.com/SAML/Issuer/Self.

    5. Vérifiez que les propriétés ci-dessous sont paramétrées sur les valeurs requises.

      Si l'une de ces propriétés est paramétrée sur une autre valeur, vous devez la remplacer par la valeur requise.

      • La propriété confirmationMethod doit avoir pour valeur Bearer.
      • La propriété keyType doit avoir pour valeur http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer.
      • La propriété wstrustClientPolicy doit avoir pour valeur Username WSHTTPS default.
      • La valeur indiquée pour la propriété wstrustClientBinding doit correspondre au nom de la liaison spécifique à l'application de votre client sécurisé créé dans les étapes précédentes. Par exemple, dans les étapes précédentes, une liaison spécifique à l'application intitulée SamlTCSample a été créée. Dans ce scénario, SamlTCSample doit être spécifiée comme valeur pour la propriété wstrustClientBinding.
    6. Facultatif : Pour modifier la façon dont le serveur d'applications recherche la liaison, vous pouvez définir la propriété wstrustClientBindingScope en lui affectant la valeur application ou domain.

      Lorsque la valeur est domain, le serveur d'applications recherche wstrustClientBinding dans l'emplacement du système de fichiers qui contient les documents des liaisons générales.

      Lorsque la valeur est application, le serveur d'applications recherche wstrustClientBinding dans l'emplacement du système de fichiers qui contient les documents des liaisons spécifiques à l'application.

      Lorsque la propriété wstrustClientBindingScope n'est pas définie, le comportement par défaut du serveur d'applications consiste à rechercher d'abord les liaisons spécifiques à l'application, puis les liaisons générales.

      Si wstrustClientBinding est introuvable, le serveur d'applications utilise les liaisons par défaut.

    7. Facultatif : Pour modifier la version SOAP du client sécurisé par défaut, qui est la même que celle du client d'application, indiquez une nouvelle valeur pour la propriété personnalisée wstrustClientSoapVersion.

      Paramétrez la propriété personnalisée wstrustClientSoapVersion sur 1.1 pour passer à la version SOAP 1.1.

      Paramétrez la propriété personnalisée wstrustClientSoapVersion sur 1.2 pour passer à la version SOAP 1.2.

    8. Cliquez sur Appliquer, puis sur Sauvegarder.

    Si des modifications supplémentaires doivent être apportées à la configuration wstrustClientBinding, et si la propriété wstrustClientBinding pointe vers une liaison spécifique à l'application, par exemple dans ce cas SamlTCSample, 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 une fois la modification est terminée.

    Avant de passer à l'étape suivante, vérifiez que le certificat SSL provenant du STS externe existe dans NodeDefaultTrustStore. Pour plus d'informations, reportez-vous à la section Avant de commencer.

  4. Redémarrez l'application de client de services Web pour que les modifications d'association d'ensemble de règles prennent effet.

    Les informations relatives à l'association d'ensembles de règles et de liaisons sont mises à jour lors du redémarrage de l'application, mais les informations mises à jour dans la liaison générale ne sont pas reflétées lors de l'exécution tant que toutes les liaisons générales ne sont pas actualisées.

    L'application doit être redémarrée après le rechargement des liaisons générales, afin que toutes les mises à jour soient exploitées. Pour plus d'informations, reportez-vous à l'étape qui suit relative au rechargement des liaisons générales des clients et des fournisseurs.

  5. Associez les liaisons et l'ensemble de règles SAML à l'application fournisseur.
    1. Associez l'ensemble de règles SAML approprié au fournisseur de services Web.
      1. Dans la console d'administration, cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de fournisseur de service.
      2. Sélectionnez la ressource de fournisseur de services Web (JaxWSServicesSamples).
      3. Cliquez sur Lier un ensemble de règles.
      4. Sélectionnez la règle SAML appropriée pour le fournisseur de services Web.
    2. Affectez la liaison générale Saml Bearer Provider Sample.
      1. Sélectionnez de nouveau la ressource de fournisseur de services Web.
      2. Cliquez sur Affecter une liaison.
      3. Sélectionnez Saml Bearer Provider Sample.
  6. Configurez les liaisons du fournisseur de services Web.
    1. Si les liaisons de fournisseur de services Web ne figurent pas déjà sur la page des liaisons et des ensembles de règles de fournisseur de services pour JaxWSServicesSamples, cliquez sur Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de fournisseur de service > Saml Bearer Provider Sample.
    2. Cliquez sur WS-Security > Authentification et protection.
    3. Dans la table des jetons d'authentification, cliquez sur con_saml11token ou con_saml20token.
    4. Cliquez sur Gestionnaire d'appel.

      La page Gestionnaire d'appel de la console d'administration permet de configurer les données de liaison destinées à la validation de la signature numérique de l'émetteur du jeton SAML pour le service STS externe.

    5. Facultatif : Affectez à la propriété personnalisée signatureRequired la valeur false si vous voulez renoncer à la validation de la signature numérique.

      Vous pouvez affecter à la propriété personnalisée signatureRequired la valeur false, si vous souhaitez supprimer la validation de la signature numérique. Cependant, pour des raisons de sécurité, il est recommandé de signer les assertions SAML et de toujours demander la validation de la signature numérique de l'émetteur. False est la valeur par défaut de cette propriété.

    6. Facultatif : Affectez à la propriété personnalisée trustAnySigner la valeur true pour autoriser la non-validation du certificat de signataire.

      Le paramètre de configuration de certificat Trust Any est ignoré dans le cadre de la validation de la signature SAML. Cette propriété n'est valide que si la propriété personnalisée signatureRequired est paramétrée sur true, qui est la valeur par défaut de cette propriété.

    7. Effectuez les actions ci-dessous si les assertions sont signées par le STS, que la propriété personnalisée signatureRequired est paramétrée sur la valeur par défaut true et que la propriété personnalisée trustAnySigner est paramétrée sur la valeur par défaut false.
      • Ajoutez un certificat dans le fichier de clés certifiées pour que le fournisseur qui fournit le certificat de signature STS externe de transmette la validation sécurisée, par exemple le certificat signataire STS externe proprement dit ou son certificat de CA racine.
      • Affectez à la propriété personnalisée trustStorePath une valeur correspondant au nom de fichier de clés certifiées. Cette valeur peut être un nom qualifié complet ou utiliser des mots clés tels que ${USER_INSTALL_ROOT}.
      • Affectez à la propriété personnalisée trustStoreType une valeur correspondant au type de fichier de clés. Les types de fichier de clés pris en charge sont les suivants : jks, jceks et pkcs12.
      • Affectez à la propriété personnalisée trustStorePassword une valeur correspondant au mot de passe du fichier de clés certifiées. Le mot de passe est stocké sous la forme d'une propriété personnalisée et codé par la console d'administration.
      • Facultatif : Pour la propriété personnalisée trustedAlias, vous pouvez définir une valeur du type samlissuer. Si cette propriété est définie, le certificat X.509 représenté par l'alias est le seul certificat STS de confiance pour la vérification de la signature SAML. Si la propriété personnalisée n'est pas définie, l'environnement d'exécution des services Web utilise le certificat signataire dans les assertions SAML pour valider la signature SAML, puis vérifie le certificat par rapport au fichier de clés certifiées configuré.
    8. Facultatif : Configurez le destinataire de sorte qu'il valide soit le nom de l'émetteur, soit le nom distinctif du sujet (SubjectDN) du certificat de l'émetteur dans l'assertion SAML, soit les deux.

      Vous pouvez créer une liste de confiance des noms d'émetteur, ou des noms distinctifs des sujets de certificat, ou une liste de chaque type. Si vous créez une liste de noms d'émetteur et une liste de noms distinctifs, les deux éléments sont vérifiés. Si le nom de l'émetteur SAML ou le nom distinctif du signataire reçu ne fait pas partie des listes de confiance, la validation SAML échoue et une exception est émise.

      L'exemple qui suit illustre la façon de créer une liste de confiance d'émetteurs et de noms distinctifs de sujet (SubjectDN). Pour chaque nom d'émetteur de confiance, utilisez trustedIssuer_n, où n est un entier positif. Pour chaque nom distinctif de sujet de confiance, utilisez trustedSubjectDN_n, où n est un entier positif. Si vous créez les deux types de liste, le nombre entier n doit être le même dans les deux listes pour la même assertion SAML. Le nombre n commence à 1 et s'incrémente de 1 à chaque fois.

      Dans cet exemple, vous faites confiance à une assertion SAML avec le nom d'émetteur WebSphere/samlissuer, quel que soit le nom distinctif de sujet du signataire, et donc vous ajoutez la propriété personnalisée suivante :
       <properties value="WebSphere/samlissuer" name="trustedIssuer_1"/>
      En outre, vous faites confiance à une assertion SAML émise par IBM/samlissuer, lorsque le nom distinctif de sujet du signataire est ou=websphere,o=ibm,c=us, et vous ajoutez la propriété personnalisée suivante :
      <properties value="IBM/samlissuer" name="trustedIssuer_2"/> 
      <properties value="ou=websphere,o=ibm,c=us" name="trustedSubjectDN_2"/>  
    9. Déchiffrez l'assertion SAML.

      Si l'assertion SAML est chiffrée par le STS, le jeton SAML apparaît dans l'en-tête de sécurité SOAP sous la forme d'un élément EncryptedAssertion à la place d'un élément Assertion. Pour déchiffrer l'assertion SAML, vous devez configurer la clé privée correspondant à la clé publique utilisée pour le chiffrement de l'assertion sur le STS.

      Les propriétés personnalisées de gestionnaire d'appel ci-dessous doivent avoir les valeurs décrites dans le tableau suivant pour que le destinataire puisse déchiffrer l'assertion SAML :

      Propriété personnalisée valeur
      keyStorePath Emplacement du fichier de clés
      keyStoreType Type de fichier de clés correspondant

      Les types de fichier de clés pris en charge sont les suivants : jks, jceks, et pkcs12

      keyStorePassword Mot de passe du fichier de clés
      keyAlias Alias de la clé privée utilisée pour le chiffrement SAML
      keyName Nom de la clé privée utilisée pour le chiffrement SAML
      keyPassword Mot de passe du nom de clé
  7. Facultatif : Vous pouvez configurer la liaison d'appelant de façon à sélectionner un jeton SAML pour représenter l'identité du demandeur. L'environnement d'exécution de sécurité des services Web utilise la configuration de connexion JAAS spécifiée pour obtenir dans le registre d'utilisateurs le nom de sécurité de l'utilisateur et ses données d'appartenance au groupe, en prenant la valeur de NameId ou de NameIdentifier dans le jeton comme nom d'utilisateur.
    1. Cliquez sur Applications d'entreprise WebSphere > JaxWSServicesSamples > Ensembles de règles et liaisons du fournisseur de services > Saml Bearer Provider Sample > WS-Security > Appelants.
    2. Cliquez sur Nouveau pour créer la configuration de l'appelant.
    3. Définissez un Nom, par exemple caller.
    4. Remplissez la zone Partie locale de l'identité de l'appelant.

      Pour les jetons SAML 1.1, entrez :

      http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1

      Pour les jetons SAML 2.0, entrez :

      http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0
    5. Cliquez sur Valider et sur Sauvegarder.
  8. Rechargez les liaisons générales des clients et des fournisseurs, puis redémarrez les applications.

    Lorsque les informations dans les liaisons générales sont mises à jour, les nouveaux paramètres ne sont pas immédiatement appliqués lors de l'exécution. Une liaison générale mise à jour doit être rechargée par le gestionnaire d'ensemble de règles du serveur d'applications avant que les mises à jour prennent effet. Vous pouvez recharger les liaisons générales et les ensembles de règles mis à jour en arrêtant et arrêtant le serveur d'applications puis en le redémarrant, ou en utilisant la commande de régénération du bean géré PolicySetManager dans wsadmin. Pour plus d'informations sur la régénération du gestionnaire d'ensembles de règles, reportez-vous à la rubrique Régénération des configurations d'ensemble de règles à l'aide de l'outil de scriptage wsadmin.

    Pour recharger les liaisons générales des clients et des fournisseurs et redémarrer les applications, effectuez l'une des opérations suivantes :
    • Redémarrez le serveur d'applications, ou
    • Régénération le bean géré PolicySetManager, puis redémarrez les applications de services Web client et fournisseur.

Résultats

Lorsque la procédure est terminée, l'application de services Web JaxWSServicesSamples est prête à utiliser l'ensemble de règles SAML Bearer Default, le modèle SAML Bearer Client Sample, et les liaisons générales du modèle SAML Bearer Provider Sample.

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_configsamlbearertoken
Nom du fichier : twbs_configsamlbearertoken.html