Archivos UserRegistry.java

El siguiente archivo es una propiedad personalizada que se utiliza con un registro de usuarios personalizado.

Para obtener más información, consulte Configuración de registros personalizados autónomos.

//  5639-D57, 5630-A36, 5630-A37, 5724-D18 
// (C) COPYRIGHT International Business Machines Corp. 1997, 2005
//  Todos los derechos reservados *  Material bajo licencia - Propiedad de IBM
//
// DESCRIPCIÓN:
//
//    Este archivo es la interfaz UserRegistry que implementan los registros personalizados
//    de WebSphere Application Server para permitir que la seguridad de WebSphere utilice el
//    personalizado.
//

package com.ibm.websphere.security;

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

/**
 * Al implementar esta interfaz, se permite que la seguridad de WebSphere Application Server
 * utilizar los registros personalizados. Esta interfaz amplía java.rmi.Remote, ya que  
 * el registro puede estar en un proceso remoto.
 *
 *La implementación de esta interfaz debe proporcionar implementaciones
para:
*
* 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
{

  /**
   * Inicializa el registro. Se llama a este método cuando se crea el
   * registro.
   *
   * @param     props   las propiedades específicas del registro con las 
   *                    que inicializar el registro personalizado
   * @exception	CustomRegistryException 
   *                    si hay algún problema específico del registro
   * @exception RemoteException 
   *    ya que amplía java.rmi.Remote
   **/
   public void initialize(java.util.Properties props)
      throws CustomRegistryException,
             RemoteException;
  /**
   * Comprueba la contraseña del usuario. Se llama a este método para autenticar a un
   * usuario cuando se proporciona el nombre y la contraseña del usuario.
   *
   * @param     userSecurityName el nombre del usuario 
   * @param     password la contraseña del usuario
   * @return    un userSecurityName válido. Normalmente es el 
   *            nombre del mismo usuario cuya contraseña se ha comprobado pero 
   *            si la implementación desea devolver otro 
   *            userSecurityName válido del registro, puede hacerlo
   * @exception CheckPasswordFailedException si la combinación de
userSecurityName/
   *            password no existe en el registro
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public String checkPassword(String userSecurityName, String password)
      throws PasswordCheckFailedException,
             CustomRegistryException,
             RemoteException;

  /**
   * Correlaciona un certificado (formato X509) con un usuario válido del registro.
   * Se utiliza para correlacionar el nombre del certificado que proporciona el navegador 
   * con un userSecurityName válido del registro
   *
   * @param     cert la cadena de certificados X509
   * @return    el nombre correlacionado del userSecurityName del usuario
   * @exception CertificateMapNotSupportedException si no se da soporte
   * al certificado concreto.
   * @exception CertificateMapFailedException si la correlación del 
   * certificado no se ejecuta correctamente.
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public String mapCertificate(X509Certificate[] cert)
      throws CertificateMapNotSupportedException,
             CertificateMapFailedException,
             CustomRegistryException,
             RemoteException;

  /**
   * Devuelve el reino del registro.
   *
   * @return the realm. El reino es una serie específica del registro que indica 
   *            el realm (reino) o domain (dominio) al que se aplica 
   * el registro.  Por ejemplo, para OS400 o AIX, sería el nombre del
   *            host a cuyo registro de usuarios representa este 
   *            objeto.
   *            Si este método devuelve null, el reino por omisión será 
   *            "customRealm". Se recomienda utilizar
   *    su propio valor de reino.
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public String getRealm()       
      throws CustomRegistryException,
             RemoteException;

  /**
   * Obtiene una lista de los usuarios que coinciden con un pattern del registro. 
   * El número máximo de usuarios devueltos se define mediante el argumento
limit.
   *
   * Este método se llama mediante la consola administrativa y los scripts (línea de  
   * mandatos) para poder añadir los usuarios del registro a los
   * roles.
   *
   * @parameter pattern el patrón con el que se ha de hacer coincidir. (Por ejemplo,
a* coincidirá con todos los
   *            userSecurityNames que comiencen por a)
   * @parameter limit el número máximo de usuarios que se ha de devolver.
   *  Resulta muy útil en situaciones en las que hay miles de usuarios
   *            en el registro y obtenerlos todos a la vez no es nada
   *            práctico. El valor 0 significa que se han de obtener todos los
   *            usuarios y debe utilizarse con atención. 
   * @return    un objeto Result que contiene la lista de usuarios
   *            solicitados y un distintivo para indicar si hay más usuarios
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public Result getUsers(String pattern, int limit)       
      throws CustomRegistryException,
             RemoteException;

  /**
   * Devuelve el nombre del usuario especificado mediante userSecurityName.
   *
   * Este método sólo se llama cuando se visualiza la información del usuario,  
   * es decir, para fines informativos, por ejemplo, en la consola administrativa, y
no se 
   * usa para fines de autenticación o autorización reales. Si no hay nombres de 
   * visualización en el registro se devuelve null o una serie vacía.
   *
   * En el registro personalizado de WebSphere Application Server Versión 4.0, si había un
   * del usuario y era distinto del nombre de seguridad, el nombre de visualización
se devolvía 
   * para los métodos EJB getCallerPrincipal() y los métodos del servlet 
   * de servlet getUserPrincipal() y getRemoteUser().
   * En WebSphere Application Server versión 6.0, para los mismos métodos la seguridad
   * se devuelve por omisión. Este el método recomendado ya que el nombre de
visualización no 
   * es exclusivo y puede crear problemas de seguridad.
   *
   * Consulte la documentación para obtener más información. 
   *
   * @parameter userSecurityName el nombre del usuario.
   * @return    el nombre de visualización del usuario. El nombre de visualización
   *            es una serie específica del registro que representa un nombre descriptivo
   * del usuario, que no siempre es exclusivo. Si no existe un nombre de visualización 
   *            se devuelve null o una serie vacía.
   *            @exception EntryNotFoundException si userSecurityName no existe.
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public String getUserDisplayName(String userSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Devuelve el ID exclusivo de un userSecurityName. Se llama a este método cuando se crea el
   * credencial de un usuario. 
   *
   * @parameter userSecurityName el nombre del usuario.
   * @return    el ID exclusivo del usuario. El ID exclusivo de un usuario son datos
   *            exclusivos, específicos del registro y con formato de serie 
   *            que representan al usuario.  Por ejemplo, para el registro de
   *            el ID exclusivo de un usuario puede ser el UID.
   *            @exception EntryNotFoundException si userSecurityName no existe.
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public String getUniqueUserId(String userSecurityName)       
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Devuelve el nombre de un usuario a partir de su ID exclusivo.
   *
   * @parameter uniqueUserId el ID exclusivo del usuario.
   * @return    el userSecurityName del usuario.
   * @exception EntryNotFoundException si el uniqueUserID no existe.
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public String getUserSecurityName(String uniqueUserId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Determina si userSecurityName existe en el registro
   *
   * @parameter userSecurityName el nombre del usuario
   * @return    true si el usuario es válido, de lo contrario, false.
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public boolean isValidUser(String userSecurityName)
      throws CustomRegistryException,
             RemoteException;

  /**
   * Obtiene una lista de los usuarios que coinciden con un pattern del registro. 
   * El número máximo de usuarios devueltos se define mediante el argumento
limit.
   *
   * La consola administrativa y los scripts (línea de mandatos) llaman a  
   * este método para poder añadir los grupos del registro a  
   * los roles.
   *
   * @parameter pattern el patrón con el que se ha de hacer coincidir. (Por ejemplo,
a* coincidirá con todos los
   *            groupSecurityNames que comiencen por a)
   * @parameter limita el número máximo de grupos que se devuelven.
   *  Resulta muy útil en situaciones en las que hay miles de usuarios
   *            en el registro y obtenerlos todos a la vez no es nada
   *            práctico. El valor 0 significa que se han de obtener todos los
   *            usuarios y debe utilizarse con atención. 
   * @return    un objeto Result que contiene la lista de grupos
   *            solicitados y un distintivo para indicar si hay más grupos.
   * @exception CustomRegistryException si hay algún problema específico 
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public Result getGroups(String pattern, int limit)
      throws CustomRegistryException,
             RemoteException;

  /**
   * Devuelve el nombre del grupo especificado mediante groupSecurityName.
   *
   * Este método sólo se llama cuando se visualiza la información del grupo,  
   * (por ejemplo, en la consola administrativa) y no se utiliza en la autenticación 
   * real o para fines de autorización. Si no hay nombres de visualización 
   * en el registro se devuelve null o una serie vacía.
   *
   * @parameter groupSecurityName el nombre del grupo.
   * @return    el nombre de visualización del grupo. El nombre de visualización
   *            es una serie específica del registro que representa un nombre descriptivo
   *            de un grupo que no siempre es exclusivo. Si no existe un nombre de visualización 
   *            se devuelve null o una serie vacía.
   * @exception EntryNotFoundException si groupSecurityName no existe.
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public String getGroupDisplayName(String groupSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Devuelve el ID exclusivo de un grupo.

   * @parameter groupSecurityName el nombre del grupo.
   * @return    el ID exclusivo del grupo. El ID exclusivo del
   *            grupo son los datos exclusivos y específicos del registro, 
   *            en formato de serie que representan al grupo.
   *  Por ejemplo, en el registro de usuarios de UNIX, el ID exclusivo puede
   *            ser el GID.
   * @exception EntryNotFoundException si groupSecurityName no existe.
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public String getUniqueGroupId(String groupSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;


  /**
   * Devuelve los ID exclusivos de todos los grupos que contienen el ID exclusivo de
   * un usuario. 
   Se llama cuando se crean las credenciales de un usuario.
   *
   * @parameter uniqueUserId el ID exclusivo del usuario.
   * @return    una lista de todos los ID exclusivos del grupo a los que pertenece el ID de usuario 
   * El ID exclusivo de una entrada son los datos exclusivos y específicos del 
   *            registro, con formato de serie que sirven para 
   *            representar la entrada.  Por ejemplo, para el registro de
   *            usuarios de UNIX, el ID exclusivo de un grupo puede ser el GID
   *            y el ID exclusivo del usuario puede ser el UID.
   * @exception EntryNotFoundException si no existe el ID de usuario exclusivo.
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public List getUniqueGroupIds(String uniqueUserId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Devuelve el nombre de un grupo a partir de su ID exclusivo.
   *
   * @parameter uniqueGroupId el ID exclusivo del grupo.
   * @return el nombre del grupo.
   * @exception EntryNotFoundException si uniqueGroupId no existe.
   * @exception CustomRegistryException si hay algún problema específico 
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public String getGroupSecurityName(String uniqueGroupId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Determina si groupSecurityName existe en el registro
   *
   * @parameter groupSecurityName el nombre del grupo
   * @return    true si el grupo existe, de lo contrario, false
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public boolean isValidGroup(String groupSecurityName)
      throws CustomRegistryException,
             RemoteException;

  /**
   * Devuelve los securityNames de todos los grupos que contienen al usuario
   *
   * La consola administrativa y los scripts (línea de mandatos) llaman a este 
   * método para verificar si el usuario especificado para la correlación de RunAsRole
   * pertenece a dicho rol en la correlación de roles con usuarios. Inicialmente, la
comprobación se 
   * se realiza para ver si el rol contiene al usuario. Si el rol no contiene explícitamente al usuario 
   * se llama a este método para obtener los grupos a los que pertenece
   * este usuario y así realizar comprobaciones en los grupos que contiene el rol.
   *
   * @parameter userSecurityName el nombre del usuario
   * @return    una lista de todos los securityNames del grupo al que pertenece el usuario. 
   * 
   * @exception EntryNotFoundException si el usuario no existe.
   *            @exception CustomRegistryException si hay algún problema específico
   *            del registro
   * @exception RemoteException as this extends java.rmi.Remote 
   **/
   public List getGroupsForUser(String userSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Obtiene una lista de los usuarios de un grupo.
   *
   * El número máximo de usuarios devueltos se define mediante el argumento limit.
   *
   *
   * Este método lo utiliza WebSphere Business Integration
   * Server Foundation Process Choreographer cuando las asignaciones de personal 
   * se modelan utilizando grupos.
   *
   
   * En raras ocasiones, si está trabajando con un registro donde obtener todos 
   * los usuarios de cualquiera de los grupos no es práctico, por ejemplo, si hay 
   * muchos usuarios, puede generar una excepción NotImplementedException
   * para esos grupos particulares. Asegúrese de que, si WebSphere Business
   * Integration Server Foundation Process Choreographer está instalado (o 
   * se instala más tarde), no se modelen utilizando estos grupos en concreto. 
   * Si no importa que las asignaciones de personal devuelvan los usuarios de 
   * grupos del registro, se recomienda implementar este método 
   * sin emitir la excepción NotImplemented.
   *
   * @parameter groupSecurityName que representa el nombre del grupo
   * @parameter limita el número máximo de usuarios que se devuelven.
   *            Esta opción es muy útil en aquellos casos en los que hay
   *            muchos usuarios en el registro y obtenerlos todos a la vez 
   *            no es nada práctico. El valor 0 significa que se han de 
   *            obtener todos los usuarios y debe utilizarse con atención.
   * @return    un objeto Result que contiene la lista de usuarios
   *            solicitados y un distintivo para indicar si hay más usuarios
   * @deprecated  Este método se pondrá en desuso en el futuro.
   * @exception NotImplementedException emite esta excepción en raras ocasiones
   *            si no es práctico obtener esta información de ninguno de los
   *            grupos del registro.
   * @exception EntryNotFoundException si el grupo no existe en el
   *            registro
   * @exception CustomRegistryException si se produce algún problema
   *            específico del registro
   * @exception RemoteException ya que amplía la interfaz java.rmi.Remote
   **/
   public Result getUsersForGroup(String groupSecurityName, int limit)
      throws NotImplementedException,
             EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Este método lo implementa internamente WebSphere Application Server
   * Server en este release. No se requieren de este método las implementaciones del 
   * registro personalizado en este release. Devuelve null en la implementación.
   *
   * Recuerde que dado que no se llama a este método, también puede devolver la 
   * excepción NotImplementedException como indica la documentación anterior.
   *
   **/
   public com.ibm.websphere.security.cred.WSCredential 
                                createCredential(String userSecurityName)
      throws NotImplementedException,
	     EntryNotFoundException,
             CustomRegistryException,
             RemoteException;
}

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_usereg
File name: rsec_usereg.html