Soporte de interceptor de asociación de confianza para la creación de sujetos

La interfaz TAI (Trust Association Interceptor), com.ibm.wsspi.security.tai.TrustAssociationInterceptor, da soporte a varias características distintas de la interfaz com.ibm.websphere.security.TrustAssociationInterceptor existente.

La interfaz del TAI da soporte a un proceso de autenticación negociada de varias fases. Por ejemplo, algunos sistemas necesitan un protocolo de respuesta de identificación de nuevo en el cliente. Los dos métodos clave de esta interfaz son:
Nombre de método de claves
public boolean isTargetInterceptor (HttpServletRequest req)

El método isTargetInterceptor determina si la solicitud se ha originado con el servidor proxy asociado al interceptor. El código de implementación debe analizar el objeto de solicitud entrante y determinar si el servidor proxy que envía la solicitud es un servidor proxy válido para este interceptor. El resultado de este método determina si el interceptor procesa la solicitud o no.

Resultado del método

Un valor true indica a WebSphere Application Server que debe dejar que el TAI maneje la solicitud.

Un valor false indica a WebSphere Application Server que debe ignorar el TAI.

Nombre de método de claves
public TAIResult negotiateValidateandEstablishTrust (HttpServletRequest req, HttpServletResponse res)

El método negotiateValidateandEstablishTrust determina si se confía o no en el servidor proxy desde el que se originó la solicitud. El código de implementación debe autenticar el servidor proxy. El mecanismo de autenticación es específico del servidor proxy. Por ejemplo, en la implementación del servidor WebSEAL que proporciona el producto, este método recupera la información de autenticación básica de la cabecera HTTP y valida la información en el registro de usuario que utiliza WebSphere Application Server. Si las credenciales no son válidas, el código genera la excepción WebTrustAssociationException, que indica que el servidor proxy no es fiable y se deniega la solicitud. Si las credenciales son válidas, el código devuelve un resultado TAIResult, que indica el estado del proceso de solicitud junto con la identidad del cliente (Sujeto y nombre de principal) que se ha de utilizar para autorizar el recurso web.

Resultado del método
Devuelve un resultado TAIResult, que indica el estado del proceso de las solicitudes. Se puede consultar el objeto de solicitud y se puede modificar el objeto de respuesta.
La clase TAIResult tiene tres métodos estáticos para crear un resultado TAIResult. Los métodos de creación de TAIResult toman un tipo de entero como primer parámetro. WebSphere Application Server espera que el resultado sea un código de retorno válido de solicitud HTTP, que se puede interpretar de las siguientes maneras:
  • Si el valor es HttpServletResponse.SC_OK, esta respuesta indica a WebSphere Application Server que el TAI ha completado la negociación. La respuesta también indica a WebSphere Application Server que debe utilizar la información del resultado TAIResult para crear una identidad de usuario.
  • Los demás valores indican a WebSphere Application Server que debe devolver al cliente Web la salida de TAI que se coloca en la respuesta HttpServletResponse. Normalmente, el cliente web proporciona información adicional y, a continuación, coloca otra llamada en el TAI.
Tabla 1. Definiciones de TAIResults. Los resultados TAIResults creados tienen los siguientes significados:
TAIResult Explicación
public static TAIResult create(int status); Indica un estado en WebSphere Application Server. El estado no puede ser SC_OK porque se proporciona la información de identidad.
public static TAIResult create(int status, String principal); Indica un estado en WebSphere Application Server y proporciona el ID de usuario o el ID exclusivo de este usuario. WebSphere Application Server crea credenciales consultando el registro de usuarios.
public static TAIResult create(int status, String principal, Subject subject); Indica un estado en WebSphere Application Server, el ID de usuario o el ID exclusivo del usuario, y un sujeto personalizado. Si el sujeto contiene una tabla de totales de control, el principal se ignora. El contenido del sujeto formará parte del sujeto del usuario final.
Los siguientes ejemplos están dentro del método negotiateValidateandEstablishTrust de un TAI.
El siguiente ejemplo de código indica que se necesita una negociación adicional:
// Modifique el objeto HttpServletResponse
	//  El código de respuesta sólo es significativo en el cliente
	return TAIResult.create(HttpServletResponse.SC_CONTINUE);
El siguiente ejemplo de código indica que TAI había determinado la identidad del usuario. WebSphere Application Server recibe sólo el ID de usuario y, a continuación, consulta el registro de usuarios para obtener información adicional:
// modifique el objeto HttpServletResponse
		return TAIResult.create(HttpServletResponse.SC_OK, userid);
El siguiente ejemplo de código indica que TAI había determinado la identidad del usuario. WebSphere Application Server recibe la información completa del usuario contenida en la tabla de totales de control. Para obtener más información sobre la tabla hash, consulte Configuración de la correlación de identidad de entrada. En este código de ejemplo, la tabla de totales de control se coloca en la parte de credenciales públicas del sujeto:
// cree un
sujeto y coloque en él la tabla de totales de control
		Subject subject = new Subject;
		subject.getPublicCredentials().add(hashtable);
// el código de respuesta sólo es significativo en el cliente
	return TAIResult.create(HttpServletResponse.SC_OK, "ignored", subject);
El siguiente ejemplo de código indica que hay un error de autenticación. WebSphere Application Server genera un error en la solicitud de autenticación:
//mensaje de error de anotaciones cronológicas
// ....
	throw new WebTrustAssociationFailedException("TAI failed for this reason");

Los siguientes son métodos adicionales de la interfaz de TrustAssociationInterceptor. Estos métodos se utilizan en la inicialización, el cierre y la identificación de TAI en WebSphere Application Server. Para obtener más información, consulte la documentación Java™.

Nombre de método
public int initialize(Properties props)

Resultado del método
Se llama a este método durante la inicialización de TAI y únicamente se llama si se han configurado las propiedades personalizadas para el interceptor.
Nombre de método
public String getVersion()
Resultado del método
Este método devuelve la versión de TAI.
Nombre de método
public String getType()
Resultado del método
Este método devuelve el tipo de TAI.
Nombre de método
public void cleanup()
Resultado del método
Se llama a este método cuando se detiene el proceso de WebSphere Application Server. Si se detiene el proceso TAI de WebSphere Application Server tiene la oportunidad de realizar cualquier limpieza que sea necesaria. Este método no es necesario si no se requiere una limpieza.

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_taisubcreate
File name: rsec_taisubcreate.html