Méthode d'authentification par assertion d'identité
Lors de l'utilisation de la méthode d'authentification par assertion d'identité (IDAssertion), le jeton de sécurité généré est un élément <wsse:UsernameToken> qui contient un élément <wsse:Username>.
Au niveau de l'expéditeur de la demande, un gestionnaire d'appel est invoqué pour générer le jeton de sécurité. Le récepteur de la requête valide le jeton de sécurité. Ces deux opérations, la génération du jeton et la validation du jeton, sont décrites dans les sections suivantes.
Validation de jeton d'assertion d'identité :
Le destinataire de la demande extrait le jeton de sécurité IDAssertion du message SOAP et le valide à l'aide du module de connexion JAAS (Java™ Authentication and Authorization Service). Avec l'assertion d'identité, un traitement spécial est requis pour établir une relation de confiance avant de vérifier que l'identité est bien l'identité établie de l'unité d'exécution. Ce traitement spécial est défini par l'élément <IDAssertion> du fichier de descripteur de déploiement, ibm-webservices-ext.xmi. Si toutes les validations aboutissent, l'identité assumée est définie comme celle de l'unité d'exécution active. Si la validation n'aboutit pas, la demande est rejetée avec une exception d'erreur SOAP.
La configuration de la connexion JAAS est définie dans l'élément <LoginMapping> du fichier de liaisons. Les liaisons par défaut sont définies dans le fichier ws-security.xml. Toutefois, vous pouvez remplacer ces liaisons à l'aide du fichier ibm-webservices-bnd.xmi spécifique à l'application. Les informations de configuration sont composées des éléments CallbackHandlerFactory et ConfigName. L'élément CallbackHandlerFactory définit le nom d'une classe utilisée pour la création d'un objet CallbackHandler JAAS. WebSphere Application Server fournit l'implémentation com.ibm.wsspi.wssecurity.auth.callback.WSCallbackHandlerFactoryImpl CallbackHandlerFactory. ConfigName définit une entrée de nom de configuration JAAS.
WebSphere Application Server recherche une entrée de nom de configuration correspondante dans le fichier security.xml. Si aucune correspondance n'est trouvée, une recherche est effectuée dans le fichier wsjaas.conf. WebSphere Application Server fournit l'entrée de configuration par défaut system.wssecurity.IDAssertion, adaptée à la méthode d'authentification par assertion d'identité.
L'élément <IDAssertion> du fichier de descripteur de déploiement ibm-webservices-ext.xmi définit le traitement spécial requis lors de l'utilisation de la méthode d'authentification par assertion d'identité. L'élément <IDAssertion> est composé de deux sous-éléments : <IDType> et <TrustMode>.
- Nom d'utilisateur
- Nom distinctif (DN)
- certificat X.509
Lorsque l'élément <IDType> est username, un jeton de nom d'utilisateur (par exemple, Pierre) est fourni. Ce nom d'utilisateur est mappé vers un utilisateur du registre d'utilisateurs et devient l'identité assumée une fois la validation de confiance effectuée. Lorsque la valeur de l'élément <IDType> est DN, un jeton de nom d'utilisateur contenant un nom distinctif est fourni (par exemple, cn=Pierre Durand, o=ibm, c=us). Ce nom distinctif est mappé vers un utilisateur du registre d'utilisateurs et cet utilisateur devient l'identité assumée une fois la validation de confiance effectuée. Lorsque l'élément <IDType> est X509Certificate, un jeton de sécurité binaire contenant un certificat X509 est fourni et la valeur SubjectDN du certificat (par exemple, cn=Pierre Durand, o=ibm, c=us) est extraite. Cette valeur SubjectDN est mappée vers un utilisateur du registre d'utilisateurs et cet utilisateur devient l'identité assumée une fois la validation de confiance effectuée.
- Signature
- BasicAuth (authentification de base)
- Aucune valeur indiquée
Lorsque la valeur de <TrustMode> est Signature, la signature est validée. Puis, le signataire (par exemple, cn=IBM Authority, o=ibm, c=us) est mappé vers une identité dans le registre d'utilisateurs (par exemple, IBMAuthority). Pour vous assurer que les droits de vérification sont dignes de confiance, l'identité mappée (par exemple, IBMAuthority) est validée par rapport à une liste d'identités dignes de confiance. Lorsque l'élément <TrustMode> est BasicAuth, il existe un jeton de nom d'utilisateur avec un nom d'utilisateur et un mot de passe, qui correspondent au nom d'utilisateur et au mot de passe du droit de vérification.
Le nom d'utilisateur et le mot de passe sont validés. Si leur validation aboutit, ce nom d'utilisateurs (par exemple, IBMAuthority) est validé par rapport à une liste d'identités dignes de confiance. Si aucune valeur n'est indiquée pour <TrustMode>, une relation de confiance est supposée et aucune validation de confiance supplémentaire n'est effectuée. Ce type d'assertion d'identité est appelé relation de confiance présumée. Utilisez le mode de relation de confiance présumée uniquement dans un environnement où une relation de confiance est établie à l'aide d'autres mécanismes.
Si toutes les validations décrites précédemment aboutissent, l'identité assumée (par exemple, Pierre) est définie comme celle de l'unité d'exécution active. Si aucune des validations n'aboutit, la demande est rejetée avec une exception d'erreur SOAP.