WebSphere
Application Server prend en charge
deux options de configuration de liaison de demandeur d'ensembles de règles pour établir le contexte de sécurité client
à l'aide de jetons de sécurité SAML dans les messages de demande SOAP de services Web. Deux options de configuration mappent les jetons SAML à une entrée utilisateur dans un référentiel utilisateur local, et affectent les jetons SAML
selon une relation de confiance.
Avant de commencer
Cette tâche suppose que vous connaissez bien la technologie SAML
WebSphere
Application Server.
Pourquoi et quand exécuter cette tâche
Cette tâche décrit le paramétrage de l'option de configuration de liaison de demandeur d'ensembles de règles
WebSphere
Application Server pour établir le contexte de sécurité client
à l'aide de jetons de sécurité SAML dans les messages de demande SOAP de services Web.
Vous pouvez mapper les jetons SAML à une entrée utilisateur dans un référentiel d'utilisateur local
ou affecter des jetons SAML selon une relation de confiance. La seconde option de configuration
ne requiert pas d'accès au référentiel d'utilisateur local. A la place,
l'environnement d'exécution WS-Security remplit le contexte de sécurité client
complètement selon le contenu des jetons de sécurité SAML. Ce processus est basé sur une relation de confiance
avec l'émetteur du jeton SAML.
Si un jeton SAML spécifie la méthode de confirmation de sujet sender-vouches. Le processus est basé sur une relation de confiance avec l'expéditeur du message.
Procédure
- Configurez une liaison de demandeur d'ensemble de règles et sélectionnez le type de jeton
SAML pour représenter une demande de client des services Web.
- Cliquez sur .
- Cliquez sur Nouveau pour créer la configuration de l'appelant.
- Définissez un Nom, par exemple caller.
- 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 doit correspondre à la portion locale de l'élément CustomToken dans la règle WS-Security associée.
- Cliquez sur Valider et sur Sauvegarder.
- Facultatif : Mappez les jetons de sécurité SAML sur une entrée utilisateur
dans un référentiel utilisateur local. Le mappage sur une entrée utilisateur
représente le comportement par défaut lorsque vous configurez une liaison d'appelant sans
spécifier d'option de configuration. Sinon, vous pouvez éventuellement sélectionner cette option de configuration explicitement en procédant comme
suit :
- Sur la page de configuration de la liaison de l'appelant, ajoutez un gestionnaire de rappels : com.ibm.websphere.wssecurity.callbackhandler.SAMLIdAssertionCallbackHandler.
- Ajoutez une propriété personnalisée de gestionnaire de rappels, crossDomainIdAssertion,
et définissez sa valeur sur false.
- Facultatif : Affectez des jetons de sécurité SAML selon une
relation de confiance.
- Sur la page de configuration de la liaison de l'appelant, ajoutez un gestionnaire de rappels : com.ibm.websphere.wssecurity.callbackhandler.SAMLIdAssertionCallbackHandler.
- Ajoutez une propriété personnalisée de gestionnaire de rappels, crossDomainIdAssertion,
et définissez sa valeur sur true.
Dans WebSphere
Application Server Version 7.0 Fix
Pack 7 et éditions ultérieures, l'environnement d'exécution WS-Security prend un nom d'émetteur de jeton
SAML pour représenter le nom de domaine de sécurité étranger. WS-Security prend l'élément NameID dans le cas de jetons de sécurité
SAML 2.0 ou l'élément NameIdentifier
dans le cas de jetons de sécurité SAML 1.1 pour représenter le nom de sécurité utilisateur. Sinon, vous pouvez spécifier de manière explicite l'attribut de jeton SAML
à utiliser pour représenter le nom de sécurité utilisateur. En outre, vous pouvez également spécifier l'attribut de jeton
SAML à utiliser pour représenter l'appartenance à un groupe utilisateur.
Consultez les informations sur les assertions SAML sur les domaines de sécurité WebSphere
Application Server
pour une discussion détaillée sur le modèle de confiance d'assertion de jeton SAML
et la configuration de liaison.La version 8.x peut propager le contenu
de com.ibm.websphere.security.cred.WSCredential dans un jeton SAML. Vous devez définir une propriété personnalisée tokenRequest
avec une valeur de propriété issueByWSCredential
dans la configuration de liaison WS-Security du client des services Web.
Consultez les informations sur la propagation des jetons SAML pour une description détaillée de cette option
de liaison. Lorsque la propriété crossDomainIdAssertion
est définie sur true dans la version 8.x, WS-Security vérifie
si un jeton SAML contient un attribut SAML UniqueSecurityName avec un élément
NameFormat avec une valeur de com.ibm.websphere.security.cred.WSCredential.
Le cas échéant, WS-Security utilise la valeur d'attribut NameQualifier
de l'élément NameID ou NameIdentifier
pour représenter le nom de domaine de sécurité utilisateur. WS-Security utilise également la valeur d'attribut UniqueSecurityName
et GroupIds pour représenter
une appartenance à un groupe et un nom d'utilisateur unique. Ce comportement par défaut est différent entre les
versions 7 et 8.x du produit. Vous pouvez ajouter une propriété
CallbackHandler, IssuerNameForRealm, et lui affecter la valeur true pour configurer la Version 8.x de sorte à conserver le comportement de la Version 7. Sinon, vous pouvez ajouter une propriété CallbackHandler, NameQualifierForRealm, et lui affecter la valeur true pour configurer la Version 8.x de sorte à toujours utiliser l'attribut NameQualifier pour représenter le nom de domaine de sécurité utilisateur.
- Activez et configurez la sécurité globale WebSphere
Application Server.
Vous pouvez utiliser l'assistant de configuration de sécurité pour activer la sécurité administrative. Vous devez également activer la sécurité d'application de sorte que l'exemple d'application puisse utiliser le sujet d'utilisateur authentifié dans le contexte de sécurité afin de créer un jeton SAML. Cette étape implique de configurer le troisième point de vérification de relation d'accréditation côté fournisseur de services Web. Cette étape est nécessaire pour utiliser le serveur d'applications afin de simuler le fournisseur de services Web du domaine de sécurité Web cible. Le sous-système d'authentification WebSphere
Application Server V8.0 prend en charge l'assertion d'une identité d'utilisateur avec un nom de domaine étranger, et vérifie le nom de domaine étranger par rapport à la liste de domaines d'authentification sécurisés entrants. Une fois cette étape de configuration terminée, WebSphere Application Server peut créer un sujet d'appelant client avec une identité d'utilisateur dans un domaine de sécurité étranger.
- Configurez les domaines de sécurité sécurisés.
- Dans le panneau Sécurité globale, cliquez sur le bouton Configurer à côté de Définitions de domaine disponibles.
- Cliquez sur le lien Domaines d'authentification sécurisés - Entrants.
- Choisissez l'option Sécurité des domaines comme indiqué ci-dessous.
- Cliquez sur Ajouter un domaine externe.
- Ajoutez le nom de l'émetteur d'assertion SAML à Nom de domaine externe.
Le nom de l'émetteur d'assertion SAML fournit des informations sur l'émetteur de l'assertion SAML, qui se trouve dans l'élément Issuer de l'assertion SAML 2.0 ou correspond à l'attribut Issuer de l'assertion SAML.
Résultats
Vous avez configuré un service Web pour établir un contexte de sécurité client
à l'aide du jeton de sécurité SAML dans les messages de demande SOAP des services Web.
Exemple
L'exemple suivant
illustre les éléments
NameIdentifier et
Attribute
à partir d'une assertion SAML 1.1 auto-générée basée sur
WSCredential:
<saml:AttributeStatement>
<saml:Subject>
<saml:NameIdentifier NameQualifier="ldap.example.com:9080">uid=alice,dc=example,dc=com</saml:NameIdentifier>
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</saml:ConfirmationMethod>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Attribute AttributeName="UniqueSecurityName" AttributeNamespace="com.ibm.websphere.security.cred.WSCredential">
<saml:AttributeValue>uid=alice,dc=example,dc=com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute AttributeName="GroupIds" AttributeNamespace="com.ibm.websphere.security.cred.WSCredential">
<saml:AttributeValue>cn=development,dc=example,dc=com</saml:AttributeValue>
<saml:AttributeValue>cn=deployment,dc=example,dc=com</saml:AttributeValue>
<saml:AttributeValue>cn=test,dc=example,dc=com</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
L'exemple suivant
illustre les éléments
NameID et
Attribute
à partir d'une assertion SAML 2.0 auto-générée basée sur
WSCredential:
<saml2:AttributeStatement>
<saml2:Attribute Name="UniqueSecurityName" NameFormat="com.ibm.websphere.security.cred.WSCredential" />
<saml2:AttributeValue>uid=alice,dc=example,dc=com</saml2:AttributeValue>
<saml2:Attribute>
<saml2:Attribute AttributeName="GroupIds" NameFormat="com.ibm.websphere.security.cred.WSCredential" />
<saml2:AttributeValue>cn=development,dc=example,dc=com</saml2:AttributeValue>
<saml2:AttributeValue>cn=deployment,dc=example,dc=com</saml2:AttributeValue>
<saml2:AttributeValue>cn=test,dc=example,dc=com</saml2:AttributeValue>
</saml2:Attribute>
<saml2:AttributeStatement>
<saml2:NameID NameQualifier="ldap.example.com:9060">alice</saml2:NameID>