A través del uso de la infraestructura de inicio de sesión
JAAS
(Java™
Authentication and Authorization Service) puede crear una configuración
de inicio sesión JAAS que se puede utilizar para realizar inicios de
sesión para una aserción de identidad.
Antes de empezar
Puede permitir a un proveedor de sistemas o aplicaciones para que realice una aserción de identidad con la validación de confianza. Para hacerlo, utilice la infraestructura de inicio de sesión JAAS,
donde la validación de confianza se consigue en un módulo de inicio de sesión y la creación de credenciales
se consigue en otro módulo.
Los dos módulos de inicio de sesión personalizados
le permiten crear una configuración de inicio de sesión JAAS que se puede utilizar para realizar
un inicio de sesión para una aserción de identidad.
Se necesitan dos módulos de inicio de sesión personalizados:
- El módulo de inicio de sesión de asociación de confianza implementado por el usuario (validación de confianza)
- El módulo de inicio de sesión de asociación de confianza implementado por el usuario realiza la verificación de confianza
que requiere el usuario. Cuando se verifica la confianza, el estado de la verificación de confianza
y la identidad del inicio de sesión deben colocarse en una correlación en el estado compartido
del módulo de inicio de sesión para que el módulo de inicio de sesión de creación de credenciales puede utilizar la información. Esta correlación debe almacenarse en la propiedad:
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state
(que consta de)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trusted
(que se establece en true si es de confianza, y false si no es de confianza)
com.ibm.wsspi.security.common.auth.module.IdenityAssertionLoginModule.principal
(que contiene el principal de la identidad)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certificates
(que contiene el certificado de la identidad)
- Módulo de inicio de sesión de la aserción de identidad (creación de credenciales)
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule realiza la creación de credenciales. Este módulo se basa en la información del estado de confianza que está en el estado compartido del contexto del inicio de sesión. Este módulo de inicio de sesión está protegido por los permisos de
tiempo de ejecución de seguridad de
Java
2 para:
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.initialize
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.login
El módulo de inicio de sesión de aserción de identidad busca la información de confianza
en la propiedad de estado compartida, com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state,
que contiene el estado de confianza y la identidad para el inicio de sesión y debe incluir:
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trusted
(que si es true indica con confianza y si es false indica sin confianza)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal
(que contiene el principal de la identidad para el inicio de sesión, si se utiliza un principal)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certificates
(que contiene una matriz de cadenas de certificados que contiene la identidad del inicio de sesión,
si se utiliza un certificado)
Si falta el estado, la confianza o la información de identidad, se devuelve
WSLoginFailedException.
El módulo de inicio de sesión realiza un inicio de sesión de la identidad, y el sujeto contendrá la nueva identidad
Procedimiento
- Delegue la validación de confianza a un punto de conexión implementado por usuario. La validación de confianza se debe conseguir en un módulo de inicio de sesión personalizado.
Este módulo de inicio de sesión personalizado
debe realizar la validación de confianza necesaria, establecer la información de confianza e identidad en el estado compartido
que se va a pasar al módulo de inicio de sesión de aserción de identidad. Es necesaria una correlación en la clave del estado compartido,
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state.
Si falta el estado, IdentityAssertionLoginModule genera una excepción WSLoginFailedException. Esta correlación debe incluir:
- Una clave de confianza llamada com.ibm.wsspi.secuirty.common.auth.module.IdentityAssertionLoginModule.trust.
Si la clave se establece en true, se establece la confianza.
Si la clave se establece en false, no se establece la confianza.
Si la clave de confianza
no se ha establecido en true, IdentityAssertionLoginModule lanzará una excepción WSLoginFailedException.
- Se establece una clave de identidad: se puede establecer java.security.Principal en la clave com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal.
- O se establece java.security.cert.X509Certificate[] en la clave com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certficates.
Si se proporcionan tanto un principal como un certificado, se utiliza el principal y se emite un aviso.
- Cree una nueva configuración JAAS para los inicios de sesión de aplicaciones La configuración
JAAS contendrá el módulo de inicio de sesión personalizado de validación de confianza implementado por el usuario y IdentityAssertionLoginModule.
Configure una configuración de inicio de sesión de aplicaciones, realice lo siguiente en la consola administrativa:
- Expanda Seguridad > Seguridad global.
- Expanda Java Authentication and Authorization
Services > Inicios de sesión de la aplicación.
- Seleccione Nueva.
- Otorgue un alias a la configuración JAAS.
- Pulse Aplicar.
- Seleccione Módulos de inicio de sesión JAAS
- Seleccione Nueva.
- Escriba el Nombre de la clase de módulo del módulo de inicio de sesión personalizado de validación de confianza implementado por el usuario.
- Pulse Aplicar.
- Escriba el Nombre de la clase de módulo de com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule
- Asegúrese de que las clases de Nombre de la clase de módulo están en el orden correcto. El módulo de inicio de sesión de validación de confianza implementado por el usuario debe ser la primera y IdentityAssertionLoginModule debe ser la segunda clase de la lista.
- Pulse Guardar.
La configuración JAAS es utilizada por la aplicación para realizar una aserción de identidad.
- Realice la aserción de identidad programable. Ahora un programa
puede utilizar la configuración de inicio de sesión JAAS para realizar una aserción de identidad mediante programa. El programa de aplicación puede crear un contexto de inicio de sesión para la configuración JAAS creado en el paso 2, después puede iniciar la sesión del contexto con la
identidad con la que se confirma. Si el inicio de sesión se realiza correctamente, dicha identidad se puede establecer en el proceso de ejecución actual. Aquí hay un ejemplo sobre cómo funcionaría dicho código:
MyCallbackHandler handler = new MyCallbackHandler(new MyPrincipal(“Joe”));
LoginContext lc = new LoginContext(“MyAppLoginConfig”, handler);
lc.login(); //asumir satisfactorio
Subject s = lc.getSubject();
WSSubject.setRunAsSubject(s);
// A partir de aquí, la identidad runas es “Joe”
Resultados
A través del uso de la infraestructura de inicio de sesión JAAS y dos módulos de inicio de sesión implementados por el usuario, puede crear una configuración de inicio de sesión JAAS que se puede utilizar para realizar el inicio de sesión de una aserción de identidad.