Paramètres de configuration de connexion système pour JAAS (Java Authentication and Authorization Service)
Cette page permet de définir la liste des configurations de connexion système JAAS (Java™ Authentication and Authorization Service).
- Cliquez sur .
- Sous Authentification, cliquez sur .
- RMI_INBOUND
- WEB_INBOUND
- DEFAULT
- RMI_OUTBOUND
- SWAM
SWAM
- wssecurity.IDAssertion
- wssecurity.signature
- wssecurity.PKCS7
- wssecurity.PkiPath
- wssecurity.UsernameToken
- wssecurity.X509BST
- LTPA
- LTPA_WEBRemarque : LTPA_WEB et WEB_INBOUND exécutent des fonctions similaires. Il est recommandé d'utiliser WEB_INBOUND car il s'agit du module de connexion au système le plus récent.
- DESERIALIZE_ASYNCH_CONTEXT
![[z/OS]](../images/ngzos.gif)
ICSF
Traite les demandes de connexion lorsque la fonction ICSF (Integrated Cryptographic Services Facility) est utilisé en tant que mécanisme d'authentification.
RMI_INBOUND, WEB_INBOUND, DEFAULT
Traite les demandes de connexion entrantes pour l'appel de méthode à distance (RMI, Remote Method Invocation), les applications Web et la plupart des autres protocoles de connexion.
- RMI_INBOUND
- Cette configuration de connexion gère les connexions pour les demandes RMI entrantes. En général, ces connexions correspondent à des demandes d'accès authentifié à des fichiers EJB (Enterprise JavaBeans). Lorsque le connecteur RMI est utilisé, elles peuvent correspondre à des demandes JMX (Java Management Extensions).
- WEB_INBOUND
- Cette configuration de connexion gère les connexions des demandes d'application Web, y compris les servlets et les fichiers JSP (JavaServer Pages). Cette configuration de connexion peut interagir avec la sortie générée par un intercepteur de relation de confiance, s'il est configuré. Le sujet transmis dans la configuration de connexion WEB_INBOUND peut contenir des objets générés par l'intercepteur de relation de confiance.
- DEFAULT
- Cette configuration de connexion gère les connexions des demandes entrantes effectuées par la plupart des autres protocoles et authentifications internes.
Ces trois configurations de connexion sont transmises dans les informations de rappel suivantes, gérées par les modules de connexion contenus dans ces configurations. Ces rappels ne sont pas transmis au même moment. Toutefois, leur combinaison détermine la façon dont le serveur d'applications authentifie l'utilisateur.
- Rappel
callbacks[0] = new javax.security.auth.callback.
NameCallback("Nom d'utilisateur :");- Responsabilité
- Collecte le nom d'utilisateur fourni lors d'une connexion. Cette
information peut correspondre au nom d'utilisateur pour les types de connexion suivants :
- Connexion par nom d'utilisateur et mot de passe, dite authentification standard.
- Nom d'utilisateur uniquement, pour la vérification d'identité sans mot de passe.
- Rappel
callbacks[1] = new javax.security.auth.callback.
PasswordCallback("Mot de passe :", false);- Responsabilité
- Collecte le mot de passe fourni lors d'une connexion. Le mot de passe null est admis et permet de prendre en charge la vérification d'identité.
- Rappel
callbacks[2] = new com.ibm.websphere.security.auth.callback.
WSCredTokenCallbackImpl("Jeton de justificatif :");- Responsabilité
- Collecte le jeton LTPA (Lightweight Third Party Authentication), ou tout autre type de jeton, pendant la connexion. En général, ces informations sont disponibles en l'absence d'un nom d'utilisateur et d'un mot de passe.
- Rappel
callbacks[3] = new com.ibm.wsspi.security.auth.callback.
WSTokenHolderCallback("Liste des jetons d'autorisation :");- Responsabilité
- Collecte la liste de tableaux des objets TokenHolder renvoyés à partir de l'appel de
la méthode WSOpaqueTokenHelper. Le rappel utilise la méthode
createTokenHolderListFromOpaqueToken avec le jeton d'autorisation CSIv2 (Common Secure
Interoperability Version 2) en entrée.Restriction : Ce rappel est présent uniquement lorsque l'option Propagation des attributs de sécurité est activée et que cette connexion est une connexion par propagation. Dans ce type de connexion, les attributs de sécurité utiles sont propagés avec la demande afin qu'il ne soit pas possible d'accéder au registre d'utilisateurs pour les autres attributs. Vous devez activer la propagation des attributs de sécurité pour l'authentification des communications sortantes et entrantes.Vous pouvez activer l'option Propagation des attributs de sécurité pour l'authentification des communications sortantes CSIv2 en suivant les étapes ci-dessous :
- Sélectionnez .
- Dans Authentification, développez la sécurité RMI/IIOP et cliquez sur Authentification des communications sortantes CSIv2.
- Activez l'option Propagation des attributs de sécurité.
Vous pouvez activer l'option Propagation des attributs de sécurité pour l'authentification des communications entrantes CSIv2 en suivant les étapes ci-dessous :- Sélectionnez .
- Dans Authentification, développez la sécurité RMI/IIOP et cliquez sur Authentification des communications entrantes CSIv2.
- Activez l'option Propagation des attributs de sécurité.
Dans les configurations de connexion système, le serveur d'applications authentifie l'utilisateur d'après les informations collectées par les rappels. Toutefois, les modules de connexion personnalisés n'ont besoin d'agir d'après aucun de ces rappels. La liste suivante décrit les combinaisons type de ces rappels :
- Le rappel callbacks[0] = new javax.security.auth.callback.NameCallback("Nom d'utilisateur :"); uniquement
Ce rappel se produit pour la vérification d'identité CSIv2, les connexions par certificats Web et CSIv2 X509, les anciennes connexions d'intercepteur de relations de confiance, etc. Lors des connexions par certificats Web et CSIv2 X509, le serveur d'applications mappe le certificat vers un nom d'utilisateur. Ce rappel est utilisé par tout type de connexion établissant la confiance uniquement à l'aide du nom d'utilisateur.
- Les rappels callbacks[0] = new javax.security.auth.callback.NameCallback("Nom d'utilisateur :");
et callbacks[1] = new javax.security.auth.callback.PasswordCallback("Mot de passe :",
false);
Cette combinaison de rappels est typique des connexions d'authentification standard. La plupart des authentifications d'utilisateur sont effectuées à l'aide de ces deux rappels.
- Le rappel callbacks[2] = new com.ibm.websphere.security.auth.callback.WSCredTokenCallbackImpl("Jeton de justificatif :"); uniquementCe rappel est utilisé pour valider un jeton LTPA (Lightweight Third Party Authentication). Cette validation se produit généralement lors d'une connexion SSO (Single Sign-On) ou en aval. Chaque fois qu'une demande provient du serveur d'applications au lieu d'un client pur, le jeton LTPA est transmis au serveur cible. Pour les connexions uniques (SSO), le jeton LTPA est reçu dans le cookie et utilisé pour la connexion. Si un module de connexion personnalisé a besoin du nom d'utilisateur à partir d'un jeton LTPA, le module peut utiliser la méthode ci-dessous pour extraire l'ID unique du jeton :
com.ibm.wsspi.security.token.WSSecurityPropagationHelper.
Une fois que l'ID unique a été extrait, utilisez la méthode ci-dessous pour extraire le nom d'utilisateur :
validateLTPAToken(byte[])com.ibm.wsspi.security.token.WSSecurityPropagationHelper.
getUserFromUniqueID(uniqueID)Important : Chaque fois qu'un module de connexion personnalisé est connecté en avant des modules de connexion du serveur d'applications et qu'il modifie l'identité à l'aide d'un service de mappage d'accréditations, il est important que ce module de connexion valide le jeton LTPA, le cas échéant. Il suffit d'appeler la méthode suivante pour valider la confiance du jeton LTPA :com.ibm.wsspi.security.token.WSSecurityPropagationHelper.
Le serveur de réception doit posséder les mêmes clés LTPA que le serveur d'envoi pour que cette validation aboutisse. Il existe un risque d'exposition de sécurité si vous ne validez pas ce jeton LTPA, le cas échéant.
validateLTPAToken(byte[]) - Une combinaison de tous les rappels mentionnés précédemment, plus le rappel callbacks[3] = new com.ibm.wsspi.security.auth.callback.WSTokenHolderCallback("Liste des jetons d'autorisation :");.Ce rappel indique que certains attributs propagés sont parvenus au serveur. Les attributs propagés requièrent encore l'une des méthodes d'authentification suivantes :
callbacks[0] = new javax.security.auth.callback.
NameCallback("Nom d'utilisateur :");callbacks[1] = new javax.security.auth.callback.
PasswordCallback("Mot de passe :", false);callbacks[2] = new com.ibm.websphere.security.auth.callback.
WSCredTokenCallbackImpl("Jeton de justificatif :");
Si les attributs sont ajoutés au sujet à partir d'un client pur, les rappels NameCallback et PasswordCallback authentifient les informations et les objets sérialisés dans le conteneur de jeton sont ajoutés au sujet authentifié.
Si la vérification d'identité CSIv2 et la propagation sont toutes les deux activées, le serveur d'applications utilise le rappel NameCallback et le conteneur de jeton, qui contient tous les attributs propagés, pour désérialiser la plupart des objets. Le serveur d'applications utilise le rappel NameCallback parce que la confiance est établie avec les serveurs que vous indiquez dans la liste de serveurs dignes de confiance CSIv2. Pour spécifier des serveurs sécurisés :- Sélectionnez .
- Dans Authentification, cliquez sur Authentification des communications entrantes CSIv2.
Un module de connexion personnalisé doit gérer la sérialisation personnalisée. Pour plus d'informations, voir "Propagation des attributs de sécurité" dans le centre de documentation.
- Rappel
callbacks[4] = new com.ibm.websphere.security.auth.callback.
WSServletRequestCallback("DemandeServletHttp :");- Responsabilité
- Collecte l'objet de demande de servlet HTTP, s'il est présent. Ce rappel permet aux modules de connexion d'obtenir des informations de la demande HTTP à utiliser pendant une connexion.
- Rappel
callbacks[5] = new com.ibm.websphere.security.auth.callback.
WSServletResponseCallback("RéponseServletHttp :");- Responsabilité
- Collecte l'objet de réponse de servlet HTTP, s'il est présent. Ce rappel permet aux modules de connexion d'ajouter des informations dans la réponse HTTP suite à la connexion. Les modules peuvent par exemple ajouter le cookie SingleSignonCookie à la réponse.
- Rappel
callbacks[6] = new com.ibm.websphere.security.auth.callback.
WSAppContextCallback("RappelContexteApplication :");- Responsabilité
- Collecte le contexte d'application Web utilisé pendant la connexion. Ce rappel consiste en une table de hachage qui, si elle est définie, contient le nom de l'application et l'adresse Web de réacheminement.
- Rappel
callbacks[7] = new WSRealmNameCallbackImpl("Realm Name:", <domaine_par_défaut>);
- Responsabilité
- Collecte le nom de domaine pour les informations de connexion. Les informations de domaine ne sont pas toujours fournies et, dans la négative, elles doivent correspondre au domaine en cours.
- Rappel
callbacks[8] = new WSX509CertificateChainCallback("X509Certificate[]: ");
- Responsabilité
- Si la source de connexion est un X509Certificate issu de l'authentification client SSL, ce rappel contient le certificat qui a été validé par SSL. Le ltpaLoginModule appelle les mêmes fonctions de mappage que dans les éditions antérieures. Une fois transmis au module de connexion, il fournit un module de connexion personnalisé qui permet de mapper le certificat de manière personnalisée. Il procède ensuite à une connexion de table de hachage (pour obtenir un exemple de connexion de table de hachage, voir la rubrique connexe, Module de connexion personnalisé pour le mappage entrant.).
- Sélectionnez .
- Dans Authentification, développez la sécurité Web et cliquez sur Connexion unique (SSO).
- Sélectionnez l'option Propagation des attributs de sécurité entrants Web.
- com.ibm.ws.security.server.lm.ltpaLoginModuleProcède à la connexion principale lorsque la propagation des attributs est soit activée, soit désactivée. Une connexion principale utilise des informations d'authentification normales, telles qu'un ID utilisateur et un mot de passe, un jeton LTPA, ou un intercepteur de relation de confiance (TAI) et un nom distinctif de certificat. Si l'une des situations suivantes est vérifiée, ce module de connexion n'est pas utilisé et le module com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule effectue la connexion principale :
- L'objet java.util.Hashtable possédant les attributs utilisateur requis est contenu dans le sujet.
- L'objet java.util.Hashtable possédant les attributs utilisateur requis est présent dans la table de hachage d'état partagé du LoginContext.
- Le rappel WSTokenHolderCallback est présent sans mot de passe spécifié. Si un nom d'utilisateur et un mot de passe sont présents avec un rappel WSTokenHolderCallback, indiquant des informations propagées, la demande provient probablement d'un client pur ou d'un serveur d'un autre domaine qui a mappé l'identité existante vers un ID utilisateur et un mot de passe.
- com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModuleCe module de connexion effectue la connexion principale à l'aide des informations d'authentification normales si l'une des conditions suivantes est vraie :
- Un objet java.util.Hashtable possédant les attributs utilisateur requis est contenu dans le sujet.
- Un objet java.util.Hashtable possédant les attributs utilisateur requis est présent dans la table de hachage d'état partagé du contexte LoginContext.
- Le rappel WSTokenHolderCallback est présent sans rappel PasswordCallback.
Lorsque l'objet java.util.Hashtable est présent, le module de connexion mappe les attributs de l'objet à un sujet valide. Lorsque le rappel WSTokenHolderCallback est présent, le module de connexion désérialise les objets de jeton d'octets et régénère le contenu du sujet sérialisé. La table de hachage java.util.Hashtable est prioritaire sur toutes les autres formes de connexion. Veillez à éviter de dupliquer ou de remplacer ce que le serveur d'applications peut avoir propagé auparavant.
En spécifiant que la table de hachage java.util.Hashtable prévaut sur les autres informations d'authentification, le module de connexion personnalisé doit avoir déjà vérifié le jeton LTPA, le cas échéant, afin d'établir une confiance suffisante. Le module de connexion personnalisé peut utiliser la méthode com.ibm.wsspi.security.token.WSSecurityPropagationHelper.validationLTPAToken(byte[]) pour valider le jeton LTPA présent dans le rappel WSCredTokenCallback. L'impossibilité de valider le jeton LTPA présente un risque en terme de sécurité.
Pour plus d'informations sur l'ajout d'une table de hachage contenant des attributs bien connus et bien formés utilisés par le serveur d'applications comme informations de connexion suffisantes, voir "Configuration du mappage d'identités entrantes" dans le centre de documentation.
RMI_OUTBOUND
Traite les demandes RMI (Remote Method Invocation) envoyées à un autre serveur lorsque les propriétés com.ibm.CSI.rmiOutboundLoginEnabled ou com.ibm.CSIOutboundPropagationEnabled ont la valeur true.
- Cliquez sur .
- Dans Authentification, développez la sécurité RMI/IIOP et cliquez sur Authentification des communications sortantes CSIv2.
Cette configuration de connexion détermine les fonctions de sécurité du serveur cible et de son domaine de sécurité. Lorsque le serveur d'applications envoie les informations d'authentification et d'autorisation en aval, il supprime la nécessité d'accéder de nouveau au registre d'utilisateurs et de vérifier les attributs de sécurité de l'utilisateur pour déterminer l'autorisation. Par ailleurs, les objets personnalisés ajoutés au serveur d'envoi figurent dans le sujet au niveau du serveur en aval.
Le rappel suivant est disponible dans la configuration de connexion RMI_OUTBOUND. Vous pouvez utiliser l'objet com.ibm.wsspi.security.csiv2.CSIv2PerformPolicy renvoyé par ce rappel pour interroger la règle de sécurité pour cette demande sortante particulière. Cette interrogation peut permettre de déterminer si le domaine cible est différent du domaine en cours et si le serveur d'applications peut mapper le domaine. Pour plus d'informations, voir "Configuration d'un mappage sortant vers un domaine cible différent" dans le centre de documentation.
- Rappel
- callbacks[0] = new WSProtocolPolicyCallback("Rappel de règle de protocole : ");
- Responsabilité
Fournit des informations sur les règles de protocole sur cet appel sortant. Ces informations permettent de déterminer le niveau de sécurité, y compris le domaine cible, les exigences de sécurité cible et les exigences de sécurité combinées.
La méthode suivante obtient les règles CSIv2PerformPolicy à partir de ce module de connexion spécifique :csiv2PerformPolicy = (CSIv2PerformPolicy)
((WSProtocolPolicyCallback)callbacks[0]).getProtocolPolicy();Un protocole autre que RMI peut avoir un type d'objet règle différent.
- com.ibm.ws.security.lm.wsMapCSIv2OutboundLoginModule
- Extrait les jetons et les objets suivants avant de créer un octet opaque envoyé à un
autre serveur à l'aide de la couche de jeton d'autorisation CSIv2 (Common Secure
Interoperability, version 2) :
- Implémentations com.ibm.wsspi.security.token.Token transmissibles à partir du sujet
- Objets personnalisés sérialisables à partir du sujet
- Jetons de propagation à partir de l'unité d'exécution
Vous pouvez utiliser un module de connexion personnalisé avant ce module de connexion pour effectuer un mappage de justificatifs. Il est toutefois conseillé que le module de connexion change le contenu du sujet transmis pendant la phase de connexion. Si cette recommandation est suivie, les modules de connexion sont traités après que celui-ci ait agi sur le nouveau contenu du sujet.
Pour plus d'informations, voir "Configuration d'un mappage sortant vers un domaine cible différent" dans le centre de documentation.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
SWAM
Traite les demandes dans un environnement monoserveur lorsque SWAM (Simple WebSphere Authentication Mechanism) est utilisé comme méthode d'authentification.
![[z/OS]](../images/ngzos.gif)
SWAM
Cette configuration de connexion permet de mapper un ID d'un registre d'utilisateurs LDAP (Lightweight Directory Access Protocol) vers un ID utilisateur SAF (System Authorization Facility)
wssecurity.IDAssertion
Traite les demandes de configuration de connexion pour la sécurité des services Web à l'aide de la vérification d'identité.
Cette configuration de connexion est destinée aux applications Web Services Security Draft 13 JAX-RPC (Version 5.x). Pour plus d'informations, voir "Méthode d'authentification par assertion d'identité" dans le centre de documentation.
wssecurity.IDAssertionUsernameToken
Traite les demandes de configuration de connexion pour la sécurité des services Web à l'aide de la vérification d'identité.
Cette configuration de connexion est destinée aux applications Web Services Security V1.0 JAX-RPC.
La propriété personnalisée com.ibm.wsspi.wssecurity.auth.module.IDAssertionLoginModule.disableUserRegistryCheck peut être configurée pour le module de connexion JAAS IDAssertionUsernameToken. Cette propriété est une option destinée au module de connexion JAAS d'assertion d'identité de Web Services Security, wssecurity.IDAssertionUsernameToken. La propriété indique que le module de connexion ne doit pas contrôler le registre des utilisateurs quand il traite un jeton d'identité entrant.
wssecurity.PKCS7
Vérifie un certificat X.509 avec une liste de révocation de certificat dans un objet Public Key Cryptography Standards #7 (PKCS7).
Cette configuration de connexion s'applique aux systèmes utilisant la version 6.0.x.
wssecurity.PkiPath
Vérifie un certificat X.509 avec un chemin PKI (Public Key Infrastructure).
Cette configuration de connexion s'applique aux systèmes utilisant la version 6.0.x.
wssecurity.signature
Traite les demandes de configuration de la connexion pour Web Services Security à l'aide de la validation de signature numérique.
Cette configuration de connexion s'applique aux systèmes utilisant la version 5.x.
wssecurity.UsernameToken
Vérifie l'authentification de base (nom d'utilisateur et mot de passe).
Quand vous utilisez l'environnement d'exécution JAX-RPC, les propriétés personnalisées suivantes doivent être configurées pour le module de connexion JAAS UsernameToken :
La propriété personnalisée com.ibm.wsspi.wssecurity.auth.module.UsernameLoginModule.disableUserRegistryCheck peut être configurée pour le module de connexion JAAS UsernameToken. Cette propriété est une option destinée au module de connexion JAAS UsernameToken de Web Services Security, com.ibm.wsspi.wssecurity.auth.module.UsernameLoginModule. La propriété indique que le module de connexion ne doit pas contrôler le registre des utilisateurs quand il traite un jeton de nom d'utilisateur entrant.
wssecurity.X509BST
Vérifie un BST (jeton de sécurité binaire) X.509 en contrôlant la validité du certificat et le chemin d'accès de celui-ci.
Cette configuration de connexion s'applique aux systèmes utilisant la version 6.0.x.
LTPA_WEB
Traite les demandes de connexion aux composants du conteneur Web comme les servlets et les pages JSP (JavaServer pages).
Le module de connexion com.ibm.ws.security.web.AuthenLoginModule est prédéfini dans la configuration de connexion LTPA. Vous pouvez ajouter des modules de connexion personnalisés avant ou après ce module dans la configuration de connexion LTPA_WEB.
La configuration de connexion LTPA_WEB peut traiter l'objet HttpServletRequest, l'objet HttpServletResponse, ainsi que le nom de l'application Web transmis à l'aide d'un gestionnaire de rappels. Pour plus d'informations, voir "Exemple : Personnalisation de l'authentification JAAS (Java Authentication and Auhtorization Service) et de la configuration de connexion" dans le centre de documentation.
LTPA
Traite les demandes de connexion qui ne sont pas gérées par la configuration de connexion LTPA_WEB.
Cette configuration de connexion est utilisée par WebSphere Application Server version 6.1 et versions précédentes.
Le module de connexion com.ibm.ws.security.server.lm.ltpaLoginModule est prédéfini dans la configuration de connexion LTPA. Vous pouvez ajouter des modules de connexion personnalisés avant ou après ce module dans la configuration de connexion LTPA. Pour plus d'informations, voir "Exemple : Personnalisation de l'authentification JAAS (Java Authentication and Auhtorization Service) et de la configuration de connexion" dans le centre de documentation.
DESERIALIZE_ASYNCH_CONTEXT
Traite les demandes de connexion pour les beans asynchrones