Esta tarea le explica cómo puede crear su propia implementación de AuthorizationToken, que se establece en el sujeto de inicio de sesión y se propaga en sentido descendente.
Acerca de esta tarea
El AuthorizationToken por omisión es
generalmente suficiente para los atributos específicos para usuario. Escriba su
propia implementación si desea lograr cualquiera de las acciones
siguientes tareas:
- Aislar los atributos en su propia implementación.
- Serializar la información utilizando la serialización personalizada. Debe deserializar los bytes en el destino y añadir dicha
información a la hebra de nuevo. Esta tarea también puede incluir el cifrado y descifrado.
- Tener un efecto en la exclusividad general del sujeto mediante la API
getUniqueID().
Para implementar una señal de autenticación personalizada, debe realizar
los pasos siguientes:
- Escriba una implementación personalizada de la interfaz AuthorizationToken. Hay varios métodos para implementar la interfaz AuthorizationToken. No
obstante, asegúrese de que los métodos necesarios para la interfaz
AuthorizationToken y la interfaz de señales estén completamente implementados.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
Después de
implementar esta interfaz, puede colocarla en el directorio raíz_servidor_aplicaciones/classes.
Alternativamente,
puede ubicar la clase en cualquier directorio privado. Sin embargo,
asegúrese de que el cargador de clases de
WebSphere
Application Server pueda localizar la clase y que se le otorguen los
permisos adecuados. Puede
añadir el archivo JAR
(Java™
Archive) o directorio que contiene esta clase en el archivo
server.policy para que tenga los permisos que necesita el
código de servidor.
Después de implementar esta
interfaz, colóquela en el directorio raíz_perfil/classes.
Si desea más información
sobre las clases, consulte Creación de un subdirectorio de clases en el perfil para clases personalizadas.
Consejo: Todos los tipos de
señales definidas por la infraestructura de propagación tienen
interfaces similares. Básicamente, los tipos de señales son
interfaces de marcador que implementan la interfaz
com.ibm.wsspi.security.token.Token. Esta interfaz define la mayoría de los
métodos. Si tiene pensado implementar más de un tipo de señal, piense en
crear una clase abstracta que implemente la interfaz
com.ibm.wsspi.security.token.Token.
Es posible que todas las
implementaciones de las señales, incluido AuthorizationToken, amplíen la clase
abstracta y, con ello, la mayoría del trabajo habrá finalizado.
Para ver una implementación de AuthorizationToken, consulte
Ejemplo: Implementación de com.ibm.wsspi.security.token.AuthorizationToken
- Añada y reciba la señal AuthorizationToken personalizada durante los
inicios de sesión de WebSphere Application
Server. Esta tarea concluye generalmente
con la adición de un módulo de inicio de sesión personalizado a las
distintas configuraciones de inicio de sesión del sistema y aplicaciones.
No
obstante, para deserializar la información, debe conectar un módulo de inicio
de sesión personalizado, que se analiza en
Propagación de un objeto serializable Java personalizado para la propagación de atributos de seguridad. Después de crear una instancia del objeto en
el módulo de inicio de sesión, puede añadir el objeto al sujeto durante el
método commit().
Si desea añadir información al sujeto para que se propague, consulte
Propagación de un objeto serializable Java personalizado para la propagación de atributos de seguridad.
Si quiere garantizar que se propague la información, realizar su propia
serialización personalizada o bien especificar la exclusividad con el fin de
almacenar el sujeto en memoria caché, piense en escribir su propia implementación
de AuthorizationToken.
El ejemplo de código en el
apartado Ejemplo: Módulo de conexión AuthorizationToken personalizadomuestra cómo
determinar si el inicio de sesión es inicial o de propagación. La diferencia entre estos tipos de inicios de sesión consiste
en si WSTokenHolderCallback contiene datos de propagación o no. Si el
retorno de llamada no contiene datos de propagación, inicialice una nueva
implementación de AuthorizationToken y establézcala en el sujeto. Si el
retorno de llamada contiene datos de propagación, busque la instancia
de AuthorizationToken TokenHolder personalizada, convierta el byte[] al
objeto AuthorizationToken personalizado y vuelva a establecerlo en el
sujeto. El ejemplo de código muestra ambas instancias.
Puede
realizar el AuthorizationToken de sólo lectura en la fase de compromiso
del módulo de inicio de sesión. Si no crea la señal de sólo lectura, los
atributos se pueden añadir en las aplicaciones.
- Añada el módulo de inicio de sesión personalizado a las configuraciones de
inicio de sesión del sistema WebSphere Application
Server que ya
contengan el módulo com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule
para recibir versiones serializadas de la señal de autorización personalizada.
Como este módulo de inicio de sesión se basa en la información del
sharedState añadido por
com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule, añádalo
después de com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule.
Para obtener más información sobre cómo añadir el módulo de inicio de sesión personalizado a las configuraciones de inicio de sesión existentes, consulte Desarrollo de módulos de inicio de sesión personalizados para una configuración de inicio de sesión del sistema para JAAS.