Configuration des clients et des fournisseurs pour le jeton SAML holder-of-key (détenteur de clé) à clé symétrique

Configurez les associations d'ensembles de règles et les liaisons des clients et des fournisseurs pour le jeton SAML holder-of-key (détenteur de clé). Ce scénario de configuration utilise une clé symétrique.

Avant de commencer

Après l'installation, vous devez créer un ou plusieurs nouveaux profils de serveur, ou ajouter des paramètres de configuration SAML à un profil existant. Un environnement de déploiement réseau, par exemple, contient plusieurs profils. 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 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 holder-of-key, vous devez importer l'un de ces ensembles de règles par défaut : SAML20 HoK Symmetric WSSecurity Default ou SAML11 HoK Symmetric WSSecurity Default. Les ensembles de règles SAML11 sont presque identiques aux ensembles SAML20, mais l'ensemble de règles SAML20 HoK Symmetic WSSecurity Default prend en charge le type de jeton SAML version 2.0, tandis que SAML11 HoK Symmetric WSSecurity Default prend en charge les jetons SAML version 1.1.

Les règles de jeton SAML sont définies 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 liaisons générales des modèles SAML HoK Symmetric Client et SAML HoK Symmetric Provider 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, et 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.

La procédure de modification des modèles de liaisons commence par la configuration de l'ensemble de règles associé au client, puis 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. Importez deux ensembles de règles par défaut : SAML20 HoK Symmetric WSSecurity Default et Username WSHTTPS Default.
    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.
    5. Cliquez sur OK pour importer les ensembles de règles.
    Si vous ne voulez pas que le serveur réclame automatiquement un jeton SAML au service de jeton de sécurité (STS) à l'aide du client WS-Trust, vous pouvez passer les étapes 2, 3 et 4 et reprendre à l'étape 5. Par exemple, vous pouvez passer les étapes 2, 3 et 4 si les services web agissent en tant que client et génèrent eux-même un jeton SAML basé sur le jeton d'origine, ou si le client de services Web a déjà acquis un jeton SAML et l'a stocké en cache dans RequestContext.
  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. 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.
  5. 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.
  6. Téléchargez le fichier de règles sans restriction. La règle de sécurité par défaut SAML20 HoK Symmetric WSSecurity Default utilise une taille de clé de chiffrement de 256 bits, ce qui nécessite la version non limitée du fichier de règles JCE (Java Cryptography Extension). Pour plus d'informations, consultez la section Utilisation des fichiers de règles JCE sans restriction dans la rubrique Optimisation de la sécurité des services Web.
  7. Associez l'ensemble de règles par défaut SAML20 HoK Symmetric WSSecurity Default et affectez le modèle de liaison SAML HoK Symmetric Client à la ressource client.
    1. 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.
    3. Cliquez sur Lier un ensemble de règles du client.
    4. Sélectionnez l'ensemble de règles SAML20 HoK Symmetric WSSecurity Default.
    5. Sélectionnez à nouveau la ressource client de services Web.
    6. Dans Liaisons et ensembles de règles du client de services, cliquez sur Affecter une liaison.
    7. Sélectionnez la liaison générale SAML HoK Symmetric Client Sample.
    8. Cliquez sur Sauvegarder.
  8. Configurez l'URL de noeud final du service STS, ainsi que le nom d'utilisateur et le mot de passe pour l'authentification auprès du STS.
    1. Cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de client de services > SAML HoK Symmetric Client Sample > WS-Security > Authentification et protection.
    2. Cliquez sur gen_saml20token dans la table des jetons de protection.
    3. Cliquez sur Gestionnaire d'appel.
    4. Modifiez la propriété stsURI et définissez le noeud final du service STS. Si vous n'utilisez pas de STS externe et que vous souhaitez que le serveur d'applications génère automatiquement une assertion de détenteur de clé avec une clé symétrique, n'effectuez pas cette étape et passez à l'étape 8i.
    5. Si nécessaire, modifiez la propriété wstrustClientPolicy et remplacez sa valeur par Username WSHTTPS Default.
    6. Modifiez la propriété wstrustClientBinding et changez sa valeur de sorte qu'elle corresponde à la liaison spécifique à l'application créée aux étapes précédentes. Dans cet exemple, il s'agit de la valeur SamlTCSample. Cette étape consiste à associer l'ensemble de règles du client WS-Trust. Vous pouvez passer cette étape si vous ne voulez pas que le serveur réclame automatiquement un jeton SAML au service de jeton de sécurité à l'aide du client WS-Trust.
    7. Modifiez la valeur de la propriété wstrustClientBindingScope, qui détermine la façon dont le serveur d'applications recherche la liaison. Choisissez application ou domain comme valeur de la propriété. 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érale. 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.
    8. Vérifiez que la valeur de la propriété confirmationMethod est Holder-of-key.
    9. Vérifiez que la valeur de la propriété keyType est http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey ou l'alias symmetrickey. La propriété wstrustClientWSTNamespace détermine comment l'alias symmetrickey est interprété. Dans ce cas, un espace de nom WS-Trust 1.3 est supposé. Si la valeur est de WS-Trust 1.2, l'alias symmetrickey est interprété en tant que http://schemas.xmlsoap.org/ws/2005/02/trust/SymmetricKey.
    10. Facultatif : Vous pouvez modifier la version SOAP du client sécurisé par défaut, qui est la même que celle du client d'application. Définissez la propriété personnalisée wstrustClientSoapVersion à la valeur 1.1 pour passer à la version SOAP 1.1, ou à 1.2 pour passer à SOAP version 1.2.
    11. Facultatif : Si vous n'utilisez pas de STS externe et que vous souhaitez que le serveur d'applications génère automatiquement une assertion de détenteur de clé avec une clé symétrique, affectez à la propriété personnalisée recipientAlias la valeur de l'alias de clé du service cible. La spécification de cette propriété protège la clé symétrique du service cible. Cet alias doit correspondre à un alias de clé valide contenu dans le fichier de clés certifiées configuré de l'émetteur SAML. La propriété TrustStorePath spécifie l'emplacement du fichier de clés certifiées. La propriété TrustStorePath est définie dans le fichier SAMLIssuerConfig.properties pour le serveur d'application. Par exemple, l'emplacement du fichier SAMLIssuerConfig.properties au niveau du serveur sur un serveur WebSphere Application est :
      racine_serveur_app/profiles/$PROFIL/config/cells/$NOMCELLULE/nodes/$NOMNOEUD/servers/$NOMSERVEUR/SAMLIssuerConfig.properties
      Sur un serveur WebSphere Application Server, l'emplacement de ce fichier au niveau de la cellule est :
      racine_serveur_app/profiles/$PROFILE/config/cells/$CELLNAME/sts/SAMLIssuerConfig.properties
    12. Cliquez sur Valider et sur Sauvegarder.
  9. 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.
  10. 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.
  11. Redémarrez l'application client de services Web pour que les modifications apportées à l'ensemble de règles associé prennent effet.
  12. Associez l'ensemble de règles SAML20 HoK Symmetric WSSecurity Default au fournisseur de services Web.
  13. Téléchargez le fichier de règles sans restriction. La règle de sécurité par défaut SAML20 HoK Symmetric WSSecurity Default utilise une taille de clé de chiffrement de 256 bits, ce qui nécessite la version non limitée du fichier de règles JCE (Java Cryptography Extension). Pour plus d'informations, consultez la section Utilisation des fichiers de règles JCE sans restriction dans la rubrique Optimisation de la sécurité des services Web.
  14. Affectez la liaison générale SAML HoK Symmetric Provider Sample.
  15. Cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de fournisseur de services > SAML HoK Symmetric Provider Sample > WS-Security > Authentification et protection.
    1. Cliquez sur con_saml20token dans la table des jetons d'authentification.
    2. Cliquez sur le lien Gestionnaire d'appel.
    3. Utilisez ce panneau pour configurer le déchiffrement à clé symétrique intégré, et la validation de la signature numérique de l'émetteur du jeton SAML envoyé au service STS externe, en suivant les instructions des étapes ci-dessous.
  16. Configurez les données de liaison pour déchiffrer la clé secrète intégrée, ou l'assertion SAML protégée par le clé publique du destinataire. Le STS doit avoir accès à la clé publique du destinataire. Il existe deux possibilités pour la configuration des clés de déchiffrement :
    • Option 1 : Configurez le fichier de clés et une clé privée, de la façon suivante :
      1. Vérifiez que la zone Nom du magasin de clés contient la valeur personnalisé.
      2. Cliquez sur Configuration du fichier de clés personnalisée pour afficher et éditer la configuration du fichier de clés.
      3. Vérifiez que la valeur initiale du fichier de clés est racine_serveur_app/etc/ws-security/samples/enc-service.jceks.
    • Option 2 : Définissez les propriétés personnalisées dans le gestionnaire d'appel de la façon suivante :
      Propriété personnalisée Value
      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é publique utilisée pour le chiffrement SAML
      keyName Nom de la clé publique utilisée pour le chiffrement SAML
      keyPassword Mot de passe du nom de clé
  17. Ajoutez le certificat signataire du service STS externe au fichier de clés certifiées. Cette étape est obligatoire si les assertions SAML sont signées par le STS et la propriété personnalisée signatureRequired n'est pas définie, ou contient la valeur true. Ce fichier de clés certifiées est configuré pour le fournisseur de services.
    1. Définissez la propriété personnalisée trustStoreType pour qu'elle corresponde au type de fichier de clés. Les types de fichier de clés pris en charge sont les suivants : jks, jceks, et pkcs12.
    2. Définissez la propriété personnalisée trustStorePath pour qu'elle corresponde à l'emplacement du fichier de clés. Par exemple, racine_serveur_app/etc/ws-security/samples/dsig-issuer.jceks. Le fichier dsig_issuer.jceks n'est pas fourni à l'installation de WebSphere Application Server, vous devez donc le créer.
    3. Pour la propriété personnalisée trustStorePassword, entrez la valeur chiffrée du mot de passe du magasin. Le mot de passe est stocké en tant que propriété personnalisée et chiffré par la console administrative.
    4. Facultatif : Pour la propriété personnalisée trustedAlias, vous pouvez définir une valeur du type samlissuer. Ne définissez pas la propriété trustedAlias si le jeton SAML est signé par différents signataires, par exemple si le STS délègue des demandes de jeton à plusieurs fournisseurs de jeton signant chacun avec un certificat. Si la propriété personnalisée n'est pas définie, l'environnement d'exécution des services web utilise le mot de passe du certificat signataire dans les assertions SAML pour valider la signature, puis vérifie le certificat par rapport au fichier de clés certifiées configuré.
    5. Facultatif : Vous pouvez affecter la valeur true à la propriété personnalisée trustAnySigner pour autoriser la non-validation du certificat signataire. Le paramètre de configuration de certificat Trust Any est ignoré dans le cadre de la validation de la signature SAML.
    6. Facultatif : Vous pouvez affecter la valeur false à la propriété personnalisée signatureRequired pour 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.
    7. Facultatif : Vous pouvez configurer le destinataire de sorte qu'il valide soit le nom de l'émetteur, soit le nom distinctif du sujet (SubjectDN) du certificat dans l'assertion SAML, soit les deux. Créez 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 de la liste 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"/> 

      Par défaut, WebSphere Application Server fait confiance à tous les émetteurs SAML lorsque vous ne définissez pas de valeur trustedIssuer_n. Sans savoir ce comportement par défaut, vous pouvez accepter par erreur des assertions SAML émises par un STS autorisé

    8. Facultatif : Vous pouvez ajouter une liste de certificats CA non racine pouvant être utilisés pour vérifier la signature du jeton SAML. Pour ce faire, ajoutez une propriété personnalisée appelée X509PATH_nn représente un entier non négatif en valeur du certificat non racine.
    9. Facultatif : Vous pouvez ajouter une liste de CRL pouvant être utilisées pour valider la signature du jeton SAML. Pour ce faire, ajoutez une propriété personnalisée appelée CRLPATH_nn représente un entier non négatif en valeur des CRL.
    10. Cliquez sur Valider et sur Sauvegarder.
  18. 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 > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de fournisseur de services > SAML HoK Symmetric 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. Par exemple, http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0, qui est la portion locale de l'élément CustomToken dans la règle WS-Security associée.
    5. Cliquez sur Valider et sur Sauvegarder.
  19. Redémarrez l'application fournisseur de services Web pour que les modifications apportées à l'ensemble de règles associé prennent effet.

Résultats

Lorsque la procédure est terminée, l'application de services Web JaxWSServicesSamples est prête à utiliser l'ensemble de règles SAML20 HoK Symmetric Default, le modèle SAML HoK Symmetric Client Sample, et les liaisons générales du modèle SAML HoK Symmetric 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_configsamlhoktoken
Nom du fichier : twbs_configsamlhoktoken.html