< Précédent | Suivant >

Leçon 4.2 : Activation des autorisations utilisateur

Dans le module d'authentification de ce tutoriel, vous avez créé les deux utilisateurs operator et manager. Vous pouvez affecter des autorisations différentes à ces utilisateurs avec l'autorisation JASS (Java Authentication and Authorization Service).

Définition de la règle d'autorisation JAAS (Java Authentication and Authorization Service) en utilisant des principaux utilisateur

Vous pouvez affecter des autorisations aux utilisateurs que vous avez créés. Affectez les autorisations de lecture operator uniquement à toutes les mappes. Affectez à l'utilisateur manager toutes les autorisations. Utilisez le fichier de règle d'autorisation JAAS pour accorder des autorisations aux principaux.
Editez le fichier d'autorisation JAAS. Le fichier xsAuth3.policy se trouve dans le répertoire samples_home/security_extauth.
grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
    principal javax.security.auth.x500.X500Principal
    "CN=operator,O=acme,OU=OGSample" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "read";
};

grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
    principal javax.security.auth.x500.X500Principal
    "CN=manager,O=acme,OU=OGSample" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "all";
};
Dans ce fichier, le codebase http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction est une URL réservée à ObjectGrid. Toutes les autorisations ObjectGrid accordées aux principaux doivent utiliser ce codebase spécial. Les autorisations suivantes sont affectées dans ce fichier :
  • Le première instruction accorde l'autorisation de mappe read au principal "CN=operator,O=acme,OU=OGSample". L'utilisateur "CN=operator,O=acme,OU=OGSample" dispose uniquement de l'autorisation de lecture sur la mappe Map1 dans l'instance Grid ObjectGrid.
  • La seconde instruction accorde toutes les autorisations de mappe au principal "CN=manager,O=acme,OU=OGSample". L'utilisateur "CN=manager,O=acme,OU=OGSample" dispose uniquement de l'autorisation de lecture sur la mappe Map1 dans l'instance Grid ObjectGrid.

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

Procédez comme suit pour définir les propriétés JVM pour les serveurs xs1 et xs2qui se trouvent dans le cluster xsCluster. Si vous utilisez une topologie qui est différente de l'exemple de topologie qui est utilisé dans ce tutoriel, définissez le fichier sur tous vos serveurs de conteneur.
  1. Dans la console d'administration, cliquez sur Serveurs > Serveurs d'applications > server_name > Java t gestion de processus > Définition de processus > Java virtual machine.
  2. Ajoutez les arguments JVM génériques suivants :
    -Djava.security.auth.policy=samples_home/security_extauth/xsAuth3.policy
  3. Cliquez sur OK et enregistrez les modifications.

Exécution de l'exemple d'application pour tester les autorisations

Vous pouvez utiliser l'exemple d'application pour tester les paramètres d'autorisation. Le gestionnaire continue de disposer de toutes les autorisations dans la mappe Map1, y compris des autorisations d'affichage et d'ajout d'employés. L'opérateur doit pouvoir afficher uniquement les employés, car seule l'autorisation de lecture lui a été affectée.
  1. Redémarrez tous les serveurs d'applications qui exécutent des serveurs de conteneur. Pour ce tutoriel, redémarrez les serveurs xs1 et xs2.
  2. Ouvrez l'application EmployeeManagementWeb. Dans un navigateur Web, ouvrez http://<host>:<port>/EmployeeManagermentWeb/management.jsp.
  3. Connectez-vous à l'application en utilisant un nom et un mot de passe utilisateur.
  4. Essayez d'afficher un employé. Cliquez sur Afficher un employé et recherchez l'adresse électronique authemp1@acme.com. Un message indique que l'utilisateur est introuvable.
  5. Ajoutez un employé. Cliquez sur Ajouter un employé. Ajoutez l'adresse électronique authemp1@acme.com, le prénom Joe et le nom Doe. Cliquez sur Soumettre. Un message indique que l'employé a été ajouté.
  6. Editez samples_home/security_extauth/client3.props. Remplacez la valeur manager manager1 de la propriété credentialGeneratorProps par operator operator1. Après avoir modifié le fichier, le servlet utilise le nom d'utilisateur "operator" et le mot de passe "operator1" pour s'authentifier sur les serveurs WebSphere eXtreme Scale.
  7. Redémarrez le cluster appCluster pour appliquer les modifications dans le fichier samples_home/security_extauth/client3.props.
  8. Essayez d'afficher un employé. Cliquez sur Afficher un employé et recherchez l'adresse électronique authemp1@acme.com. L'employé s'affiche.
  9. 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. Le message suivant s'affiche :
    An exception occurs when Add the employee. See below for detailed exception messages.
    Texte de l'exception détaillée :
    java.security.AccessControlException: Access denied 
    (com.ibm.websphere.objectgrid.security.MapPermission Grid.Map1 insert)
    Ce message s'affiche, car l'opérateur n'est pas autorisé à insérer des données dans la mappe Map1.
Si vous utilisez une version de WebSphere Application Server antérieure à la version 7.0.0.11, une erreur java.lang.StackOverflowError peut s'afficher sur le serveur de conteneur. Elle est provoquée par IBM Developer Kit. Le problème est résolu dans IBM Developer Kit fourni avec WebSphere Application Server Version 7.0.0.11 et les versions suivantes.

Point de contrôle de la leçon

Dans cette leçon, vous avez configuré l'autorisation en attribuant des autorisations à des utilisateurs spécifiques.

< Précédent | Suivant >