Fichiers UserRegistry.java

Le fichier suivant est une propriété personnalisée utilisée avec un registre d'utilisateurs personnalisé.

Pour obtenir plus d'informations, reportez-vous à la section Configuration des registres personnalisés autonomes.

//  5639-D57, 5630-A36, 5630-A37, 5724-D18 
// (C) COPYRIGHT International Business Machines Corp. 1997, 2005
//  All Rights Reserved *  Eléments sous licence - Propriété d'IBM
//
// DESCRIPTION:
//
//    Ce fichier est l'interface UserRegistry que les registres personnalisés dans WebSphere 
//    Application Server implémentent pour activer la sécurité WebSphere pour utiliser le 
//    le registre personnalisé.
//

package com.ibm.websphere.security;

import java.util.*;
import java.rmi.*;
import java.security.cert.X509Certificate;
import com.ibm.websphere.security.cred.WSCredential;

/**
 * L'implémentation de cette interface permet à WebSphere Application Server Security 
 * d'utiliser des registres personnalisés. Cette interface étend java.rmi.Remote car  
 * le registre peut se trouver dans un processus éloigné.
 *
 * L'implémentation de cette interface doit fournir des
implémentations pour :
*
* initialize(java.util.Properties)
* checkPassword(String,String)
* mapCertificate(X509Certificate[])
* getRealm
* getUsers(String,int)
* getUserDisplayName(String)
* getUniqueUserId(String)
* getUserSecurityName(String)
* isValidUser(String)
* getGroups(String,int)
* getGroupDisplayName(String)
* getUniqueGroupId(String)
* getUniqueGroupIds(String)
* getGroupSecurityName(String)
* isValidGroup(String)
* getGroupsForUser(String)
* getUsersForGroup(String,int)
* createCredential(String)
**/

public interface UserRegistry extends java.rmi.Remote
{

  /**
   * Initialise le registre. Cette méthode est appelée lors de la création
   * du registre.
   *
   * @param props : propriétés propres au registre avec lesquelles 
   *               le registre personnalisé doit être initialisé 
   * @exception	CustomRegistryException 
   *                    S'il y a une erreur liée au registre
   * @exception RemoteException 
   *    lorsque cela étend java.rmi.Remote
   **/
   public void initialize(java.util.Properties props)
      throws CustomRegistryException,
             RemoteException;
  /**
   * Vérifie le mot de passe de l'utilisateur. Cette méthode est appelée pour authentifier un
   * utilisateur lorsque le nom et le mot de passe sont indiqués.
   *
   * @param     userSecurityName : nom de l'utilisateur 
   * @param     password : mot de passe de l'utilisateur
   * @return    une valeur userSecurityName valide. En général, il s'agit 
   *            du nom du même utilisateur dont le mot de passe a été vérifié, mais 
   *            si l'implémentation doit renvoyer une autre valeur 
   *            userSecurityName dans le registre, elle peut le faire
   * @exception CheckPasswordFailedException si la combinaison userSecurityName/
   *            password n'existe pas dans le registre
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public String checkPassword(String userSecurityName, String password)
      throws PasswordCheckFailedException,
             CustomRegistryException,
             RemoteException;

  /**
   * Mappe un certificat (au format X509) avec un utilisateur valide du registre.
   * Permet de mapper le nom figurant dans le certificat fourni par un navigateur 
   * avec la valeur userSecurityName du registre
   *
   * @param     cert : chaîne de certificat X509
   * @return    nom mappé de l'utilisateur userSecurityName
   * @exception CertificateMapNotSupportedException : si ce certificat
   * particulier n'est pas supporté.
   * @exception CertificateMapFailedException : si le mappage du 
   * certificat échoue.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public String mapCertificate(X509Certificate[]cert)
      throws CertificateMapNotSupportedException,
             CertificateMapFailedException,
             CustomRegistryException,
             RemoteException;

  /**
   * Renvoie le domaine de sécurité du registre.
   *
   * @return    le domaine. Le domaine est une chaîne propre au registre qui indique 
   *            le domaine auquel s'applique ce registre. 
   *            Par exemple,  Par exemple, pour OS400 ou AIX, il s'agit du 
   *            nom d'hôte du système dont le registre utilisateur est représenté 
   *            par cet objet.
   *            Si une valeur indéfinie est renvoyée par cette méthode, le domaine prend 
   *            par défaut la valeur "customRealm". Utilisez de préférence
   *                      la valeur que vous avez définie pour le domaine.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public String getRealm()
      throws CustomRegistryException,
             RemoteException;

  /**
   * Renvoie une liste d'utilisateurs qui correspond à une valeur pattern du registre. 
   * Le nombre maximal d'utilisateurs renvoyés est défini par
   * l'argument.
   * Cette méthode est appelée par la console d'administration) et par les scripts  
   * (ligne de commande) pour rendre les utilisateurs du registre accessibles et les
   * ajouter aux rôles.
   *
   * @parameter pattern : chaîne de recherche. (Par ex., a* permet de sélectionner les
   * userSecurityNames commençant par la lettre a)
   * @parameter limit : nombre maximal d'utilisateurs qui peuvent être renvoyés.
   *            Cette fonction est très utile lorsque le registre contient des milliers
   *            d'utilisateurs et qu'il n'est pas pratique de les extraire tous en
   *            même temps. La valeur O renvoie tous les utilisateurs et
   *            doit donc être utilisée avec précaution. 
   * @return un objet Result qui contient la liste des utilisateurs
   * demandée et un indicateur qui montre s'il existe davantage d'utilisateurs.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public Result getUsers(String pattern, int limit)
      throws CustomRegistryException,
             RemoteException;

  /**
   * Renvoie le nom affiché de l'utilisateur spécifié par userSecurityName.
   *
   * Cette méthode est appelée uniquement lorsque les informations utilisateur s'affichent  
   * (par exemple dans la console d'administration) et donc qu'elles ne sont pas 
   * utilisées pour l'authentification ou les droits d'accès effectifs. Si le registre 
   * ne contient aucun nom affiché, une chaîne nulle ou vide est renvoyée.
   *
   * Dans le registre personnalisé de WebSphere Application Server Version 4.0, si vous aviez un 
   * nom d'affichage pour l'utilisateur et qu'il était différent du nom de sécurité, le nom d'affichage 
   * était renvoyé pour les méthodes d'EJB getCallerPrincipal() et les méthodes de servlet 
   * getRemoteUser().
   * Dans WebSphere Application Server Version 6.0 pour les mêmes méthodes de sécurité,  
   * le nom de sécurité est renvoyé par défaut. Ce procédé est conseillé car le nom affiché 
   * n'est pas unique et peut engendrer des défauts de sécurité.
   *
   * Pour plus d'informations, reportez-vous à la documentation. 
   *
   * @parameter userSecurityName : nom de l'utilisateur.
   * @return    nom affiché de l'utilisateur. Le nom affiché est une
   * chaîne propre au registre qui représente un nom descriptif, pas
   * nécessairement unique, de l'utilisateur. S'il n'existe aucun 
   * nom affiché, une chaîne nulle ou vide est renvoyée.
   * @exception EntryNotFoundException : si userSecurityName n'existe pas.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public String getUserDisplayName(String userSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Renvoie l'ID unique associé à un userSecurityName. Cette méthode est appelée pour
   * créer l'identificateur unique d'un utilisateur. 
   *
   * @parameter userSecurityName : nom de l'utilisateur.
   * @return : ID unique de l'utilisateur. Il se présente sous forme
   * de chaîne de données uniques propres au registre et servant à 
   * représenter l'utilisateur.  Par exemple, pour UNIX 
   * UNIX, l'ID unique d'un utilisateur peut être son UID.
   * @exception EntryNotFoundException : si userSecurityName n'existe pas.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public String getUniqueUserId(String userSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Renvoie le nom d'un utilisateur à partir de son ID unique.
   *
   * @parameter uniqueUserId : ID unique de l'utilisateur.
   * @return :  nom userSecurityName de l'utilisateur.
   * @exception EntryNotFoundException : si uniqueUserID n'existe pas.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public String getUserSecurityName(String uniqueUserId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Détermine si le nom userSecurityName existe dans le registre
   *
   * @parameter userSecurityName : nom de l'utilisateur
   * @return    : true si l'utilisateur est valide. Sinon, false
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public boolean isValidUser(String userSecurityName)
      throws CustomRegistryException,
             RemoteException;

  /**
   * Renvoie une liste de groupes qui correspond à une valeur pattern du registre. 
   * Le nombre maximal de groupes renvoyés est défini par
   * l'argument.
   * Cette méthode est appelée par la console d'administration et les scripts  
   * (ligne de commande) pour rendre les groupes du registre accessibles et  
   * les ajouter aux rôles.
   *
   * @parameter pattern : chaîne de recherche. (Par ex., a* permet de sélectionner les
   *            groupSecurityNames commençant par la lettre a)
   * @parameter limit : nombre maximal de groupes à renvoyer.
   *            Cette fonction est très utile lorsque le registre contient des milliers
   *            de groupes et qu'il n'est pas pratique de les obtenir tous en
   *            même temps. La valeur O renvoie tous les utilisateurs et
   *            doit donc être utilisée avec précaution. 
   * @return    un objet Result qui contient la liste des groupes
   *            demandée et un indicateur montrant s'il existe davantage de groupes.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public Result getGroups(String pattern, int limit)
      throws CustomRegistryException,
             RemoteException;

  /**
   * Renvoie le nom affiché du groupe spécifié par groupSecurityName.
   *
   * Cette méthode peut être appelée uniquement lorsque les informations utilisateur sont affichées  
   * (par exemple dans la console d'administration) et qu'elles ne sont pas 
   * utilisées pour l'authentification ou les droits d'accès. Si le registre ne contient 
   * aucun nom affiché, une chaîne null ou vide est renvoyée.
   *
   * @parameter groupSecurityName : nom du groupe.
   * @return nom affiché du groupe. Le nom affiché est une
   * chaîne propre au registre qui représente un nom descriptif, pas
   * nécessairement unique, du groupe. S'il n'existe aucun 
   * nom affiché, une chaîne nulle ou vide est renvoyée.
   * @exception EntryNotFoundException : si groupSecurityName n'existe pas.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public String getGroupDisplayName(String groupSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Renvoie l'ID unique d'un groupe.

   * @parameter groupSecurityName : nom du groupe.
   * @return : ID unique du groupe. Il se présente
   * sous forme de chaîne de données uniques propres au registre 
   * et servant à représenter le groupe.
   *  Par exemple, pour le registre d'utilisateurs UNIX, l'ID unique peut être 
   * le GID.
   * @exception EntryNotFoundException : si groupSecurityName n'existe pas.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public String getUniqueGroupId(String groupSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;


  /**
   * Renvoie les ID uniques de tous les groupes qui contiennent l'ID unique d'un
   * utilisateur. 
   Cette méthode est appelée lors de la création de l'identificateur
   * unique d'un utilisateur.
   *
   * @parameter uniqueUserId : ID unique de l'utilisateur.
   * @return : liste de tous les ID uniques de groupe à laquelle appartient 
   * l'utilisateur. L'ID unique d'une entrée est la représentation 
   * sous forme de chaîne de données uniques propres au registre et servant 
   * à représenter l'entrée.  Par exemple, pour le registre d'utilisateurs
   * UNIX, l'ID unique d'un groupe peut être le GID 
   * et l'ID unique pour l'utilisateur peut être l'UID.
   * @exception EntryNotFoundException si l'ID unique d'utilisateur n'existe pas.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public List getUniqueGroupIds(String uniqueUserId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Renvoie le nom d'un groupe à partir de son ID unique.
   *
   * @parameter uniqueGroupId : ID unique du groupe.
   * @return : nom du groupe.
   * @exception EntryNotFoundException : si uniqueGroupId n'existe pas.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public String getGroupSecurityName(String uniqueGroupId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Détermine si le groupSecurityName existe dans le registre
   *
   * @parameter groupSecurityName : nom du groupe
   * @return    true si le groupe existe, sinon false
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public boolean isValidGroup(String groupSecurityName)
      throws CustomRegistryException,
             RemoteException;

  /**
   * Renvoie les noms de sécurité de tous les groupes contenant l'utilisateur
   *
   * Cette méthode est appelée par la console d'administration et les scripts 
   * (ligne de commande) pour vérifier si l'utilisateur entré pour le mappage
   * appartient à ce rôle parmi ceux adéquats. A l'origine, la vérification a 
   * lieu pour voir si le rôle contient l'utilisateur. Si tel n'est pas explicitement le cas, 
   * cette méthode est appelée pour extraire les groupes auxquels cet utilisateur
   * appartient afin d'effectuer des vérifications pour les groupes inclus dans le rôle.
   *
   * @parameter userSecurityName : nom de l'utilisateur
   * @return    liste de tous les securityNames de groupe à laquelle l'utilisateur 
   * l'utilisateur. 
   * @exception EntryNotFoundException si l'utilisateur n'existe pas.
   * @exception CustomRegistryException s'il y a une erreur liée 
   * au registre
   * @exception RemoteException lorsque cela étend java.rmi.Remote
   **/
   public List getGroupsForUser(String userSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Renvoie la liste d'utilisateurs d'un groupe.
   *
   * Le nombre maximal d'utilisateurs renvoyés est défini par
   * l'argument.
   *
   * Cette méthode est utilisée par WebSphere Business Integration
   * Server Foundation Process Choreographer lorsque les attributions d'équipe 
   * sont définies à l'aide de groupes.
   *
   
   * Dans de très rares cas, si vous utilisez un registre d'utilisateurs et qu'il
   * n'est pas facile d'extraire tous les utilisateurs de l'un de vos groupes (par exemple, si
   * le nombre d'utilisateurs est important), vous pouvez créer l'exception NotImplementedException
   * pour ces groupes. Vérifiez que si WebSphere Business 
   * Integration Server Foundation Process Choreographer est installé (ou en cas 
   * d'installation ultérieure), les utilisateurs ne sont pas définis à l'aide de ces groupes. 
   * S'il n'est pas nécessaire que les attributions d'équipe renvoient des utilisateurs 
   * à partir de groupes du registre, il est recommandé que cette méthode 
   * soit appliquée sans émettre d'exception NotImplemented.
   *
   * @parameter groupSecurityName : nom du groupe
   * @parameter limit : nombre maximal d'utilisateurs à renvoyer.
   *            Cette fonction est très utile lorsque le registre
   *             contient un grand nombre et qu'il n'est pas pratique 
   *            de les extraire tous en même temps. La valeur O renvoie tous les 
   *            utilisateurs et doit donc être utilisée avec précaution.
   * @return    un objet Result qui contient la liste des utilisateurs
   * demandée et un indicateur qui montre s'il existe davantage d'utilisateurs.
   * @deprecated : cette méthode sera déconseillée par la suite.
   * @exception NotImplementedException crée cette exception dans de rares cas
   *            lorsqu'il n'est pas facile d'extraire ces informations pour un des
   *            groupes à partir du registre.
   * @exception EntryNotFoundException : si le groupe n'existe pas dans
   * le registre
   * @exception CustomRegistryException s'il y a une erreur liée
   *            au registre
   * @exception RemoteException lorsque cela étend l'interface java.rmi.Remote
   **/
   public Result getUsersForGroup(String groupSecurityName, int limit)
      throws NotImplementedException,
             EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Cette méthode est implémentée en interne par WebSphere Application Server  
   * Server de cette version. Elle n'est pas appelée pour les implémentations du 
   * registre personnalisé de cette version. Renvoyez null dans l'implémentation.
   *
   * Cette méthode n'étant pas appelée, il est également possible de renvoyer 
   * l'exception NotImplementedException, comme indiqué dans la documentation précédente.
   *
   **/
   public com.ibm.websphere.security.cred.WSCredential 
                                createCredential(String userSecurityName)
      throws NotImplementedException,
	     EntryNotFoundException,
             CustomRegistryException,
             RemoteException;
}

Icône indiquant le type de rubrique Rubrique de référence



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