< Précédent | Suivant >

Leçon 4.4 : Configuration des autorisations de groupe

Dans la leçon précédente, vous avez affecté des autorisations utilisateur individuelles aux principaux utilisateur dans la règle d'autorisation JAAS (Java Authentication and Authorization CService). Cependant, lorsque vous avez des centaines ou des milliers d'utilisateurs, utilisez l'autorisation de groupe, qui autorise l'accès en fonction des groupes plutôt que des utilisateurs individuels.

Malheureusement, l'objet Subject qui est authentifié depuis de WebSphere Application Server contient uniquement un principal utilisateur. Cet objet ne contient pas de principal. Vous pouvez ajouter un module de connexion personnalisé pour alimenter le principal de groupe dans l'objet Subject.

Pour ce tutoriel, le module de connexion personnalisé s'appelle com.ibm.websphere.samples.objectgrid.security.lm.WASAddGroupLoginModule. Le module se trouve dans le fichier groupLM.jar. Placez le fichier JAR dans le répertoire WAS-INSTALL/lib/ext.

WASAddGroupLoginModule extrait les données d'identification de groupe public depuis le sujet WebSphere Application Server et crée un principal Groupe, com.ibm.websphere.samples.objectgrid.security.WSGroupPrincipal, pour représenter le groupe. Ce principal de groupe peut ensuite être utilisé pour l'autorisation de groupe. Les groupes sont définis dans le fichier xsAuthGroup2.policy :
grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
principal com.ibm.websphere.sample.xs.security.WSGroupPrincipal 
		"defaultWIMFileBasedRealm/cn=operatorGroup,o=defaultWIMFileBasedRealm" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "read";
};

grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
principal com.ibm.websphere.sample.xs.security.WSGroupPrincipal 
	"defaultWIMFileBasedRealm/cn=adminGroup,o=defaultWIMFileBasedRealm" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "all";
};
Le nom du principal est WSGroupPrincipal qui représente le groupe.

Ajout du module de connexion personnalisé

Le module de connexion personnalisé doit être ajouté à chacune des entrées de module de connexion système suivantes : si vous utilisez l'authentification LTPA (Lightweight Third Party Authentication), ajoutez l'entrée aux modules de connexion RMI_INBOUND. LTPA est le mécanisme d'authentification par défaut pour WebSphere Application Server Version 7.0. Pour une configuration WebSphere Application Server Network Deployment, il suffit de configurer les entrées de configuration du mécanisme d'authentification LTPA.

Procédez comme suit pour configurer le module de connexion com.ibm.websphere.samples.objectgrid.security.lm.WASAddGroupLoginModule :

  1. Dans la console d'administration, cliquez sur Sécurité > Sécurité globale > Java Authentication and Authorization Service > Connexions système > login_module_name > Modules de connexion JAAS > Nouveau.
  2. Entrez le nom de classe com.ibm.websphere.sample.xs.security.lm.WASAddGroupLoginModule.
  3. Facultatif : Ajoutez une propriété debug et définissez la valeur true.
  4. Cliquez sur Appliquer pour ajouter le nouveau module à la liste des modules de connexion.

Définition du fichier de règle d'autorisation JAAS à l'aide des propriétés JVM

Dans la console d'administration, effectuez les étapes suivantes pour les serveurs xs1 et xs2 dans xsCluster. Si une topologie de déploiement différente est utilisée, effectuez les étapes suivantes pour les serveurs d'applications qui hébergent les serveurs de conteneur.

  1. Dans la console d'administration, cliquez sur Serveurs > Serveurs d'applications > server_name > Java et gestion des processus > Définition de processus > Java virtual machine
  2. Entrez les arguments JVM génériques suivants ou remplacer l'entrée -Djava.security.auth.policy par le texte suivant :
    -Djava.security.auth.policy=samples_home/security/xsAuthGroup2.policy
  3. Cliquez sur OK et enregistrez les modifications.

Test d'autorisation de groupe avec l'exemple d'application

Vous pouvez vérifier que l'autorisation de groupe est configurée par le module de connexion avec l'exemple d'application.

  1. Redémarrez les serveurs de conteneur. Pour ce tutoriel, les serveurs de conteneur sont les serveurs xs1 et xs2.
  2. Connectez-vous à l'exemple d'application. Dans un navigateur Web, ouvrez http://<host>:<port>/EmployeeManagementWeb/management.jsp et connectez-vous avec le nom d'utilisateur admin1 et le mot de passe admin1.
  3. Affichez un employé. Cliquez sur Afficher un employé et recherchez l'adresse électronique authemp2@acme.com. Un message indique que l'utilisateur est introuvable.
  4. Ajoutez un employé. Cliquez sur Ajouter un employé. Ajoutez l'adresse électronique authemp2@acme.com, le prénom Joe et le nom Doe. Cliquez sur Soumettre. Un message indique que l'employé a été ajouté.
  5. Connectez-vous en tant qu'opérateur. Ouvrez une seconde fenêtre de navigateur Web et l'URL http://<host>:<port>/EmployeeManagermentWeb/management.jsp. Utilisez le nom d'utilisateur operator1 et le mot de passe operator1.
  6. Essayez d'afficher un employé. Cliquez sur Afficher un employé et recherchez l'adresse électronique authemp2@acme.com. L'employé est affiché.
  7. Ajoutez un employé. Cliquez sur Ajouter un employé. Ajoutez l'adresse électronique authemp3@acme.com, le prénom Joe et le nom Doe. Cliquez sur Soumettre. Le message suivant s'affiche :
    An exception occurs when Add the employee. See below for detailed exception messages.
    L'exception suivante se trouve dans la chaîne d'exception :
    java.security.AccessControlException: Access denied 
    (com.ibm.websphere.objectgrid.security.MapPermission Grid.Map1 insert)
    Ce message s'affiche, car l'utilisateur operator n'est pas autorisé à insérer des données dans la mappe Map1.

Point de contrôle de la leçon

Vous avez configuré des groupes pour simplifier l'attribution des droits aux utilisateurs de votre application.

< Précédent | Suivant >