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.
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é.
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é.
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
- Supprimez une configuration de connexion JAAS.
- Cliquez sur Sécurité > Sécurité globale.
- Sous Service d'autorisation et d'authentification Java, cliquez sur Connexions d'application. Le panneau de configuration
Connexion de l'application s'affiche alors.
- Cochez la case correspondant aux configurations de
connexion à supprimer et cliquez sur Supprimer.
- Créez une configuration de connexion JAAS.
- Cliquez sur Sécurité > Sécurité globale.
- Sous Service d'autorisation et d'authentification Java, cliquez sur Connexions d'application.
- Cliquez sur Nouveau. Le panneau de configuration
Connexion de l'application s'affiche alors.
- 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.
- Dans le menu Propriétés supplémentaires, cliquez sur Modules de
connexion JAAS.
- Cliquez sur Nouveau.
- 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.
- 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.
- Sélectionnez Stratégie d'authentification dans la liste et cliquez
sur Valider.
- 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.
- 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.
- 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.
Cet
emplacement n'est pas recommandé pour WebSphere
Application Server
pour z/OS ou WebSphere Business Integration
Server Foundation.
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.
- Modifiez le fichier de texte en clair.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
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.
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]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
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.
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]](../images/dist.gif)
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.
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.