Personalización del inicio de sesión de aplicaciones para realizar la aserción de identidad utilizando JAAS

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

  1. 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.
  2. 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:
    1. Expanda Seguridad > Seguridad global.
    2. Expanda Java Authentication and Authorization Services > Inicios de sesión de la aplicación.
    3. Seleccione Nueva.
    4. Otorgue un alias a la configuración JAAS.
    5. Pulse Aplicar.
    6. Seleccione Módulos de inicio de sesión JAAS
    7. Seleccione Nueva.
    8. 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.
    9. Pulse Aplicar.
    10. Escriba el Nombre de la clase de módulo de com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule
    11. 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.
    12. Pulse Guardar.
    La configuración JAAS es utilizada por la aplicación para realizar una aserción de identidad.
  3. 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.

Icon that indicates the type of topic Task topic



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