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).

Pour afficher cette page de la console d'administration, procédez comme suit :
  1. Cliquez sur Sécurité > Sécurité globale.
  2. Sous Authentification, cliquez sur Service d'authentification et d'autorisation Java > Connexions système.
Lisez la documentation relative au service JAAS (Java Authentication and Authorization Service) avant de commencer à définir des modules de connexion complémentaires pour procéder à l'authentification au niveau du module d'exécution de la fonction de sécurité du serveur d'applications. Ne supprimez pas les modules de connexion système suivants :
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("NomUtilisateur : ");

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("Credential Token: ");

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 de 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 :
  1. Cliquez sur Sécurité > Sécurité globale.
  2. Dans Authentification, développez la sécurité RMI/IIOP et cliquez sur Authentification des communications sortantes CSIv2.
  3. 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 :
  1. Cliquez sur Sécurité > Sécurité globale.
  2. Dans Authentification, développez la sécurité RMI/IIOP et cliquez sur Authentification des communications entrantes CSIv2.
  3. 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 : "); uniquement
    Ce 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.
    validateLTPAToken(byte[])

    Une fois que l'ID unique a été extrait, utilisez la méthode ci-dessous pour extraire le nom d'utilisateur :

    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.
    validateLTPAToken(byte[])

    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.
  • 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'autorisations : ");.
    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("NomUtilisateur : ");

    • callbacks[1] = new javax.security.auth.callback.PasswordCallback("Mot de passe :
      ", false);

    • callbacks[2] = new com.ibm.websphere.security.auth.callback.
      WSCredTokenCallbackImpl("Credential Token: ");

    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 :
    1. Cliquez sur Sécurité > Sécurité globale.
    2. 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.

Outre les rappels définis précédemment, la configuration de connexion WEB_INBOUND ne peut contenir que les rappels supplémentaires suivants :
Rappel

callbacks[4] = new com.ibm.websphere.security.auth.callback.WSServletRequestCallback("HttpServletRequest:
");

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("HttpServletResponse:
");

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("ApplicationContextCallback:
");

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_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.).
Si vous souhaitez utiliser la propagation des attributs de sécurité avec la configuration de connexion WEB_INBOUND, vous pouvez activer l'option Propagation des attributs de sécurité entrants Web dans un panneau Connexion unique (SSO).
  1. Cliquez sur Sécurité > Sécurité globale.
  2. Dans Authentification, développez la sécurité Web et cliquez sur Connexion unique (SSO).
  3. Sélectionnez l'option Propagation des attributs de sécurité entrants Web.
Les modules de connexion suivants sont prédéfinis dans les configurations de connexion système RMI_INBOUND, WEB_INBOUND et DEFAULT. Vous pouvez ajouter des modules de connexion personnalisés avant, entre ou après l'un de ces modules de connexion, mais vous ne pouvez pas supprimer ces modules de connexion prédéfinis :
  • com.ibm.ws.security.server.lm.ltpaLoginModule
    Procè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.wsMapDefaultInboundLoginModule
    Ce 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.

Ces propriétés sont définies sur le panneau de configuration du protocole d'authentification CSIv2. Pour accéder à ce panneau, procédez comme suit :
  1. Cliquez sur Sécurité > Sécurité globale.
  2. Dans Authentification, développez la sécurité RMI/IIOP et cliquez sur Authentification des communications sortantes CSIv2.
Pour définir la propriété com.ibm.CSI.rmiOutboundLoginEnabled, sélectionnez Mappage sortant personnalisé. Pour définir la propriété com.ibm.CSIOutboundPropagationEnabled, sélectionnez l'option Propagation des attributs de sécurité.

Cette configuration de connexion détermine les fonctions de sécurité du serveur cible et de son domaine de sécurité. Par exemple, si le serveur d'applications version 5.1.1 ou suivantes (ou 5.1.0.2 pour z/OS) communique avec un serveur d'applications version 5.x, le serveur d'applications version 5.1.1 envoie les informations d'authentification, à l'aide d'un jeton LTPA, au serveur d'applications version 5.x. Toutefois, si WebSphere Application Server, version 5.1.1 ou suivantes communique avec un serveur d'applications, version 5.1.x, les informations d'authentification et d'autorisation sont envoyées au serveur d'applications de réception si la propagation est activée au niveau du serveur d'origine et du serveur de réception. 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.

Le module de connexion ci-dessous est prédéfini dans la configuration de la connexion RMI_OUTBOUND. Vous pouvez ajouter des modules de connexion personnalisés avant, entre ou après l'un de ces modules de connexion, mais vous ne pouvez pas supprimer ces modules de connexion prédéfinis.
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.

SWAM [AIX Solaris HP-UX Linux Windows] [iSeries]

Traite les demandes dans un environnement monoserveur lorsque SWAM (Simple WebSphere Authentication Mechanism) est utilisé comme méthode d'authentification.

Le mécanisme SWAM ne prend pas en charge les accréditations transmissibles. Lorsque SWAM est utilisé comme méthode d'authentification, le serveur d'applications ne peut pas envoyer de demandes d'un serveur à l'autre. Dans ce cas, vous devez utiliser LTPA.
Remarque : La configuration du module de connexion SWAM est obsolète et sera supprimée dans une édition future.
[z/OS] Remarque : La fonction SWAM est encore utilisée dans le serveur d'applications Version 7.0 mais sera supprimée dans une future édition.
wssecurity.IDAssertion [Version 5 only]

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 [Version 6 only]

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 pour le module de connexion JAASC Web Services Security Identity Assertion 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 connexion pour la sécurité des services Web à 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 pour le module de connexion JAAS de sécurité de services Web UsernameToken, 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 5.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.




Les liens marqués (en ligne) requièrent un accès à Internet.

Concepts associés
Tâches associées
Référence associée
Paramètres de définition de configuration pour JAAS (Java Authentication and Authorization Service)


Nom du fichier : usec_sysjaas.html