Puede utilizar la infraestructura de inicio de sesión JAAS (Java™ Authentication and Authorization Service)
para crear una configuración de inicio de sesión JAAS que se puede utilizar para realizar el inicio de sesión en una confirmación de identidad en el perfil Liberty.
Acerca de esta tarea
Configurando la confirmación de identidad con la validación de confianza, una aplicación puede utilizar la configuración de inicio de sesión JAAS para realizar una confirmación de identidad mediante programa.
Consulte IdentityAssertionLoginModule para obtener información más detallada.
Procedimiento
- Delegue la validación de confianza a un punto de plug-in implementado por el usuario.
La validación de confianza se realiza gracias a un módulo de inicio de sesión personalizado. Este módulo de inicio de sesión personalizado
realiza la validación de confianza necesaria y, a continuación, establece 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 confirmación de identidad. Se necesita una correlación en la siguiente clave de estado compartido:
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state
Si falta el estado, se notifica el problema
WSLoginFailedException mediante la clase
IdentityAssertionLoginModule.
La correlación en la clave de estado compartido debe incluir una clave de confianza con el siguiente nombre de clave:
com.ibm.wsspi.security.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 y la clase
IdentityAssertionLoginModule crea un problema
WSLoginFailedException.
La correlación en la clave de estado compartido también establece uno de los siguientes recursos:
Si se proporcionan tanto un principal como un certificado, se utiliza el principal y se notifica un aviso.
- Cree una configuración JAAS para los inicios de sesión de la aplicación. La configuración JAAS contendrá el módulo de inicio de sesión personalizado de validación de confianza implementado por el usuario y la clase IdentityAssertionLoginModule.
A continuación, para configurar un inicio de sesión de la aplicación, añada al siguiente código en el archivo server.xml:
<jaasLoginContextEntry id="CustomIdentityAssertion" name="CustomIdentityAssertion" loginModuleRef="customIdentityAssertion,identityAssertion" />
<jaasLoginModule id="customIdentityAssertion"
className="com.ibm.ws.security.authentication.IdentityAssertionLoginModule"
controlFlag="REQUIRED" libraryRef="customLoginLib"/>
<library id="customLoginLib">
<fileset dir="${server.config.dir}" includes="IdentityAssertionLoginModule.jar"/>
</library>
La aplicación utiliza la configuración JAAS para realizar una confirmació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 creada 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. En el ejemplo siguiente se ilustra este proceso:
NameCallback handler = new NameCallback(new MyPrincipal("Joe"));
LoginContext lc = new LoginContext("customIdentityAssertion", handler);
lc.login(); //assume successful
Subject s = lc.getSubject();
WSSubject.setRunAsSubject(s);
// From here on , the runas identity is "Joe"
Nota: La clase MyPrincipal es la implementación de la interfaz java.security.Principal en el ejemplo.
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 iniciar sesión en una confirmación de identidad.