Configuration de connexions par programmation pour JAAS (Java Authentication and Authorization Service)

Une nouvelle configuration de connexion JAAS peut être ajoutée et modifiée à l'aide de la console d'administration. Les modifications sont sauvegardées dans le document sur la sécurité au niveau des cellules et tous les serveurs d'applications gérés peuvent en disposer.

Avant de commencer

Le service JAAS (Java™ Authentication and Authorization Service) est une fonction de WebSphere Application Server. JAAS est une série d'API d'authentification stratégiques WebSphere Application Server qui remplace les API de connexion par programmation CORBA (Common Object Request Broker Architecture).

WebSphere Application Server fournit des extensions pour JAAS :
  • com.ibm.websphere.security.auth.WSSubject. L'API com.ibm.websphere.security.auth.WSSubject étend le modèle d'autorisation JAAS aux ressources Java EE (Java Platform, Enterprise Edition).
  • Vous pouvez configurer la connexion JAAS dans la console d'administration et stocker cette configuration de connexion dans la configuration du serveur d'applications. Toutefois, WebSphere Application Server prend toujours en charge le format de configuration de connexion JAAS par défaut (fichier texte) fourni par l'implémentation JAAS par défaut. Si une configuration de connexion est définie dans l'API de configuration de WebSphere Application Server et dans un fichier texte standard, la configuration dans l'API WebSphere Application Server prévaut. La définition de la configuration de connexion dans l'API de configuration de WebSphere présente les avantages suivants :
    • Support de l'interface utilisateur assuré dans la définition de la configuration de la connexion JAAS
    • Gestion centrale de la configuration de connexion JAAS
    • Répartition de la configuration de connexion JAAS au cours d'une installation
    En raison d'une erreur de conception dans JAAS version 1.0, la méthode javax.security.auth.Subject.getSubject ne renvoie pas le sujet associé à l'unité d'exécution dans un bloc de code java.security.AccessController.doPrivileged. Cette situation entraîne un comportement incohérent source de résultats non souhaités. L'API com.ibm.websphere.security.auth.WSSubject offre une solution pour obtenir l'association du sujet à une unité d'exécution.
  • Proxy LoginModule. Le module de connexion proxy charge le véritable module LoginModule. L'implémentation JAAS par défaut n'utilise pas le chargeur de classes de contexte d'unité d'exécution pour charger les classes. Le module LoginModule ne peut pas être chargé si le fichier de classe du module LoginModule ne figure pas dans le chargeur de classe de l'application ou dans le chemin d'accès aux classes du chargeur de classe d'extension Java. En raison de ce problème de visibilité du chargeur de classe, WebSphere Application Server fournit un proxy LoginModule pour charger le module de connexion JAAS à l'aide du chargeur de classe du contexte de l'unité d'exécution. Il n'est pas nécessaire de placer l'implémentation de LoginModule dans le chargeur de classe de l'application ou le chemin d'accès aux classes du chargeur de classe d'extension Java avec ce module proxy LoginModule.

    [AIX Solaris HP-UX Linux Windows]Si vous ne souhaitez pas utiliser le module proxy LoginModule, vous pouvez insérer le module de connexion dans le répertoire racine_serveur_app/lib/ext/. Cependant, cette action n'est pas recommandée en raison des risques pesant sur la sécurité.

    [z/OS]Si vous ne souhaitez pas utiliser le module proxy LoginModule, vous pouvez insérer le module de connexion dans le répertoire WAS_HOME/lib/ext/. Cependant, cette action n'est pas recommandée en raison des risques pesant sur la sécurité.

    [IBM i]Si vous ne souhaitez pas utiliser le module proxy LoginModule, vous pouvez insérer le module LoginModule dans le répertoire /QIBM/UserData/Java400/ext/ pour l'ajouter au chemin d'accès aux classes des répertoires étendus Java. Par ailleurs, attribuez les droits *PUBLIC *RX au fichier. Toutefois, lorsque vous ajoutez le fichier au répertoire /QIBM/UserData/Java400/ext/, il est également ajouté au chemin d'accès aux classes par défaut des répertoires étendus Java, accessible à tout le système d'exploitation.

Les configurations de connexion JAAS sont définies dans le document de sécurité de l'API de configuration de WebSphere Application Server. Cliquez sur Sécurité > Sécurité globale. Dans la section Configuration Java, cliquez sur Connexions des applications. Les configurations de connexion JAAS disponibles sont les suivantes :

ClientContainer
Définit une configuration de connexion et une implémentation LoginModule similaire à celle de la configuration WSLogin, mais qui met en application les conditions requises par le conteneur client WebSphere Application Server. Pour plus d'informations, voir Paramètres de définition de configuration pour JAAS (Java Authentication and Authorization Service).
DefaultPrincipalMapping,
Définit un module LoginModule spécial généralement utilisé par les connecteurs Java EE pour mapper une identité d'utilisateur WebSphere Application Server authentifié vers un ensemble de données d'authentification d'utilisateur (ID utilisateur et mot de passe) pour le système EIS (Enterprise Information Systems) central spécifié. Pour plus d'informations sur le connecteur Java EE et le module DefaultMappingModule, consultez la section relative à la sécurité Java EE.
WSLogin
Définit une configuration de connexion et une implémentation de LoginModule pouvant être utilisées par les applications en général.

Une nouvelle configuration de connexion JAAS peut être ajoutée et modifiée à l'aide de la console d'administration. Les modifications sont sauvegardées dans le document sur la sécurité au niveau des cellules et tous les serveurs d'applications gérés peuvent en disposer. Il est nécessaire de redémarrer le serveur d'applications pour que les modifications soient prises en compte lors de l'exécution.

Avertissement : Ne retirez pas et ne supprimez pas les configurations de connexion JAAS prédéfinies (telles que ClientContainer, WSLogin et DefaultPrincipalMapping). Leur suppression peut en effet mettre en échec d'autres applications d'entreprise.

Procédure

  1. Supprimez une configuration de connexion JAAS.
    1. Cliquez sur Sécurité > Sécurité globale.
    2. Sous Service d'autorisation et d'authentification Java, cliquez sur Connexions d'application. Le panneau de configuration Connexion de l'application s'affiche alors.
    3. Cochez la case correspondant aux configurations de connexion à supprimer et cliquez sur Supprimer.
  2. Créez une configuration de connexion JAAS.
    1. Cliquez sur Sécurité > Sécurité globale.
    2. Sous Service d'autorisation et d'authentification Java, cliquez sur Connexions d'application.
    3. Cliquez sur Nouveau. Le panneau de configuration Connexion de l'application s'affiche alors.
    4. Indiquez le nom d'alias de la nouvelle configuration de connexion JAAS et cliquez sur Valider. Il s'agit du nom de la configuration de connexion que vous transmettez dans l'implémentation javax.security.auth.login.LoginContext pour créer un contexte LoginContext.

      Cliquez sur Valider pour sauvegarder les modifications et ajouter le nom de noeud supplémentaire qui précède le nom d'alias d'origine. Si vous cliquez sur OK, les nouvelles modifications ne sont pas sauvegardées dans le fichier security.xml.

    5. Dans le menu Propriétés supplémentaires, cliquez sur Modules de connexion JAAS.
    6. Cliquez sur Nouveau.
    7. Indiquez un nom dans Nom de classe du module. En raison de la restriction imposée par la visibilité du chargeur de classe, indiquez le module proxy LoginModule de WebSphere Application Server.
    8. Indiquez l'implémentation du module de connexion comme propriété déléguée du module proxy LoginModule. Le nom de classe du module proxy LoginModule WebSphere Application Server est com.ibm.ws.security.common.auth.module.proxy.WSLoginModuleProxy.
    9. Sélectionnez Stratégie d'authentification dans la liste et cliquez sur Valider.
    10. Dans le menu Propriétés supplémentaires, sélectionnez Propriétés personnalisées. Le panneau Propriétés personnalisées du module de connexion sélectionné s'affiche.
    11. Créez une propriété portant le nom delegate et la valeur de l'implémentation effective de LoginModule. Vous pouvez définir d'autres propriétés telles que debug en lui attribuant la valeur true. Ces propriétés sont transmises à la classe LoginModule sous la forme d'options de la méthode initialize de l'instance LoginModule.
    12. Cliquez sur Sauvegarder.

      Pour une installation de WebSphere Application Server, Network Deployment, veillez à effectuer une opération de synchronisation de fichier pour propager les modifications sur les autres noeuds.

    Le module de connexion JAAS peut être placé dans plusieurs emplacements de la structure des répertoires WebSphere Application Server. La liste qui suit indique, par ordre de préférence, les divers emplacements possibles pour le module de connexion JAAS :
    • Dans un fichier EAR (enterprise archive) pour une application Java EE (Java Platform, Enterprise Edition) spécifique.

      Si vous placez le module de connexion dans le fichier EAR, il n'est accessible que par cette application.

    • Dans la bibliothèque partagée de WebSphere Application Server.

      Si vous placez le module de connexion dans la bibliothèque partagée, vous devez désigner les applications autorisées à accéder au module. Pour plus d'informations sur les bibliothèques partagées, reportez-vous à l'article Gestion des bibliothèques partagées.

    • Dans le répertoire des extensions Java.

      >Si vous placez le module de connexion JAAS dans le répertoire des extensions Java, il est disponible pour toutes les applications.

      [z/OS]Cet emplacement n'est pas recommandé pour WebSphere Application Server pour z/OS ou WebSphere Business Integration Server Foundation.

      [IBM i]Placez le fichier classe dans le répertoire /QIBM/UserData/Java400/ext pour l'ajouter au chemin d'accès aux classes des répertoires étendus Java. Par ailleurs, attribuez les droits *PUBLIC *RX au fichier. Toutefois, lorsque vous ajoutez ce fichier dans le répertoire /QIBM/UserData/Java400/ext, vous l'ajoutez dans le chemin d'accès aux classes par défaut des répertoires étendus Java, accessible par l'ensemble du système d'exploitation.

    Même si le répertoire des extensions Java est l'emplacement qui offre la plus grande disponibilité au module de connexion, placez ce module dans le fichier EAR d'une application. Si d'autres applications doivent accéder à ce même module de connexion, envisagez d'utiliser des bibliothèques partagées.

  3. Modifiez le fichier de texte en clair.

    [AIX Solaris HP-UX Linux Windows][z/OS]WebSphere Application Server prend en charge le format de configuration de connexion JAAS par défaut, à savoir, un fichier texte en clair, fourni par l'implémentation par défaut JAAS. Aucun outil n'est toutefois fourni pour l'édition des fichiers texte en clair de ce format. Vous pouvez définir la configuration de connexion JAAS dans le fichier texte en clair, qui se trouve dans le fichier racine_serveur_app/properties/wsjaas.conf. Toute erreur de syntaxe peut provoquer des erreurs d'analyse du fichier texte de configuration de connexion JAAS en clair. D'autres applications peuvent en conséquence échouer.

    [IBM i]WebSphere Application Server prend en charge le format de configuration de connexion JAAS par défaut, à savoir, un fichier texte en clair, fourni par l'implémentation par défaut JAAS. Aucun outil n'est toutefois fourni pour l'édition des fichiers texte en clair de ce format. Vous pouvez définir la configuration de connexion JAAS dans le fichier racine_profil/properties/wsjaas.conf. Toute erreur de syntaxe peut provoquer des erreurs d'analyse du fichier texte de configuration de connexion JAAS en clair. D'autres applications peuvent en conséquence échouer.

    [AIX Solaris HP-UX Linux Windows][z/OS]Les programmes client Java qui utilisent JAAS (Java Authentication and Authorization Service) pour l'authentification doivent être appelés en indiquant le fichier de configuration JAAS. Ce fichier de configuration est défini dans la fichier racine_serveur_applications/bin/launchClient.bat comme suit :
    set JAAS_LOGIN_CONFIG=-Djava.security.auth.login.config=%install_root%\properties\wsjaas_client.conf
    Si le fichier launchClient.bat n'est pas utilisé pour appeler le programme client Java, assurez-vous que le fichier de configuration JAAS adéquat est transmis à la machine virtuelle Java avec l'indicateur -Djava.security.auth.login.config.

    [IBM i]Les programmes client Java qui utilisent JAAS pour l'authentification doivent être appelés à l'aide du fichier de configuration JAAS indiqué. Ce fichier de configuration est défini dans le script QShell launchClient. Si vous n'utilisez pas le script launchClient pour appeler le programme client Java, assurez-vous que le fichier de configuration JAAS adéquat est transmis à la machine virtuelle Java à l'aide de l'indicateur -Djava.security.auth.login.config.

Résultats

Une nouvelle configuration de connexion JAAS est créée et l'ancienne est supprimée. Une application d'entreprise peut utiliser une configuration de connexion JAAS nouvellement créée sans qu'il soit nécessaire de redémarrer le processus de serveur d'applications.

[AIX Solaris HP-UX Linux Windows][z/OS]Toutefois, les nouvelles configurations de connexion JAAS définies dans le fichier racine_serveur_app/properties/wsjaas.conf ne sont pas régénérées automatiquement. Redémarrez les serveurs d'applications pour valider les modifications. Ces configurations de connexion JAAS sont propres à un noeud particulier et ne sont pas disponibles sur d'autres serveurs d'applications exécutés sur d'autres noeuds.

[IBM i]Toutefois, les nouvelles configurations de connexion JAAS définies dans le fichier racine_profil/properties/wsjaas.conf ne sont pas régénérées automatiquement. Redémarrez les serveurs d'applications pour valider les modifications. Ces configurations de connexion JAAS sont propres à un noeud particulier et ne sont pas disponibles sur d'autres serveurs d'applications exécutés sur d'autres noeuds.

Que faire ensuite

Créez les configurations de connexion JAAS utilisées par les applications d'entreprise pour effectuer une authentification personnalisée. Utilisez ces configurations de connexion JAAS nouvellement définies pour établir une connexion par programmation.

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=tsec_j2clogin
Nom du fichier : tsec_j2clogin.html