Configuración de delegación restringida de Kerberos para señales SPNEGO de salida en Liberty

Puede configurar un servidor Liberty para soportar la delegación restringida de Kerberos para señales SPNEGO de salida.

Antes de empezar

Asegúrese de que ha configurado la autenticación web de SPNEGO.

Solo están soportados IBM® JDK 1.8 y posteriores.

Acerca de esta tarea

La extensión de Kerberos v5 llamada S4U (servicios para usuarios) también conocida como delegación restringida está formada por dos partes:
S4U2self

Permite a un servidor Liberty obtener un tíquet de servicio para sí mismo en nombre de un usuario. Este se puede utilizar con cualquier forma de autenticación que admita Liberty. S4U2self es la extensión de transición de protocolo Kerberos.

S4U2proxy

Permite a un servidor Liberty obtener tíquets de servicio de servicios de confianza en nombre de un usuario. Estos tíquets de servicio se obtienen utilizando el tíquet de servicio del usuario para el servicio Liberty. Los servicios están restringidos por el administrador del centro de distribución de claves (KDC) de Kerberos. S4U2proxy es la extensión de la delegación restringida de Kerberos.

La característica de delegación restringida proporciona las API siguientes para crear la señal SPNEGO de salida para servicios de fondo que admiten autenticación SPNEGO como, por ejemplo, servidores .NET y otros servidores Liberty.
  • API S4U2self: com.ibm.websphere.security.s4u2proxy.SpnegoHelper.buildS4U2proxyAuthorizationUsingS4U2self()
  • API S4U2proxy: com.ibm.websphere.security.s4u2proxy.SpnegoHelper.buildS4U2proxyAuthorization()

Los pasos siguientes utilizan la misma configuración de sistema de ejemplo que se utiliza en la Configuración de autenticación SPNEGO en Liberty y se ilustra en el Inicio de sesión único para solicitudes HTTP utilizando la autenticación web de SPNEGO.

Procedimiento

  1. En el controlador de dominio de Microsoft myAdMachine.example.com, actualice el nombre principal del servicio (SPN) que utiliza para validar la señal SPNEGO de entrada. Por ejemplo, actualice el SPN HTTP/myLibertyMachine.example.com del modo siguiente:
    1. Para utilizar S4U2self, realice los pasos siguientes:
      1. Abra la cuenta de usuario que está correlacionada con el SPN delegado.
      2. Abra la pestaña Editor de atributos.
      3. Modifique la propiedad userAccountControl del modo siguiente:
        • De confianza para la delegación de autenticación (0x1000000, o la enumeración TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION) debe ser verdadero.
      4. Establezca el servicio de confianza:
        • Abra la pestaña Delegación en la cuenta de usuario.
        • Seleccione el botón de opción Confiar en este usuario para la delegación solo a servicios especificados.
        • Seleccione el botón de opción Utilizar cualquier protocolo de autenticación.
        • Pulse en Añadir para añadir el servicio de confianza.
        • Pulse Usuarios o equipos.
        • Especifique el SPN que se va a utilizar para el servicio de confianza.
        • Pulse Comprobar nombres y verifique que se ha encontrado el nombre de objeto apropiado.
        • Pulse Aceptar.
        • Seleccione el SPN especificado y pulse Aceptar.
    2. Para utilizar S4U2proxy, realice los pasos siguientes:
      1. Abra la cuenta de usuario que está correlacionada con el SPN delegado.
      2. Abra la pestaña Editor de atributos.
      3. Modifique la propiedad userAccountControl del modo siguiente:
        • Es de confianza para la delegación de autenticación (0x1000000, o la enumeración TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION) debe ser verdadero.
      4. Establezca el servicio de confianza:
        • Abra la pestaña Delegación en la cuenta de usuario.
        • Seleccione el botón de opción Confiar en este usuario para la delegación solo a servicios especificados.
        • Pulse en Añadir para añadir el servicio de confianza.
        • Pulse Usuarios o equipos.
        • Especifique el SPN que se va a utilizar para el servicio de confianza.
        • Pulse Comprobar nombres y verifique que se ha encontrado el nombre de objeto apropiado.
        • Pulse Aceptar.
        • Seleccione el SPN especificado y pulse Aceptar.
  2. En la máquina del servidor Liberty, (myLibertyMachine.example.com), habilite la característica de delegación restringida añadiendo constrianedDelegation-1.0 a featureManager y configure el módulo de inicio de sesión de JAAS Kerberos en el archivo server.xml.
    <featureManager>
            <feature>spnego-1.0</feature>
            <feature>contrainedDelegation-1.0</feature>
            ...
    </featuremanager>
    <jaasLoginContextEntry id="com.ibm.security.jgss.krb5.accept" name="com.ibm.security.jgss.krb5.accept" loginModuleRef="useKeytab" />
    	 <jaasLoginModule id="useKeytab"
    className="com.ibm.security.auth.module.Krb5LoginModule" controlFlag="REQUIRED" libraryRef="jaasSharedLib">
                    <options 
                            credsType="both"
                            debug="true" 
                            useDefaultCcache="false"
                            tryFirstPass="true"
                            forwardable ="true"                    
                            principal="HTTP/myLibertyMachine.example.com"
                            useKeytab="${server.config.dir}/resources/security/kerberos/krb5.keytab">
                    </options>		 		 		 		  
            </jaasLoginModule>
    
    
    <library id="jaasSharedLib" apiTypeVisibility="spec, ibm-api, api">
          <fileset dir="${server.config.dir}/lib/global/"
    includes="*" />
    </library>
    Cuando está habilitada la característica constrainedDelegation-1.0, la configuración siguiente está implícita:
    <constrainedDelegation
    id="defaultConstrainedDelegation" s4U2selfEnabled="false" />
    Para utilizar S4U2self, se necesita la siguiente configuración en el archivo server.xml:
    <constrainedDelegation s4U2selfEnabled = "true" id="defaultConstrainedDelegation"/>
    Nota: Cuando se utiliza la API S4U2proxy, el ID jaasLoginContextEntry y el nombre com.ibm.security.jgss.krb5.accept no se pueden cambiar.
    Nota: De forma predeterminada, S4U2proxy está habilitada y S4U2self está inhabilitada. La extensión S4U2self se puede habilitar o inhabilitar modificando el atributo s4U2selfEnabled en el archivo server.xml.

Resultados

Ahora, la aplicación estará preparada para llamar a la API proporcionada por la característica de delegación restringida.

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_config_kerb_constrained_del.html