Configuración de un cliente de OpenID Connect en Liberty

Puede configurar un servidor de Liberty para que funcione como un cliente de OpenID Connect, o una Relying Party, para aprovechar las ventajas del inicio de sesión único web y utilizar un proveedor de OpenID Connect como un proveedor de identidades.

Acerca de esta tarea

Puede configurar un servidor de Liberty para que actúe como un cliente de OpenID Connect habilitando la característica openidConnectClient-1.0 de Liberty, además de otra información de configuración.

Procedimiento

  1. Añada la característica de Liberty openidConnectClient-1.0 y otras características necesarias al archivo server.xml. La característica ssl-1.0 también es necesaria para la característica openidConnectClient-1.0. Añada la siguiente declaración del elemento dentro del elemento featureManager en el archivo server.xml:
    <feature>openidConnectClient-1.0</feature> 	
    <feature>ssl-1.0</feature>
  2. Configure un elemento openidConnectClient. A continuación, se muestra un ejemplo de una configuración mínima que funciona con el proveedor de OpenID Connect del servidor de Liberty predeterminado.

    El cliente debe tener disponible una aplicación configurada correctamente en el patrón de URL especificado, que pueda manejar las solicitudes de redirección desde un proveedor de OpenID Connect. Este URL también debe coincidir precisamente con el URL de redirección registrado para el cliente con el OP.

    Nota: En este ejemplo, el cliente espera que el puerto SSL esté establecido en 443.
    <openidConnectClient id="client01" 		
        clientId="client01" 		
        clientSecret="{xor}LDo8LTor" 		
        authorizationEndpointUrl="https://server.example.com:443/oidc/endpoint/OidcConfigSample/authorize" 		
        tokenEndpointUrl="https://server.example.com:443/oidc/endpoint/OidcConfigSample/token"> 	
    </openidConnectClient>
    En esta configuración mínima de ejemplo, se suponen los siguientes valores predeterminados:
    • scope=openid profile: el ámbito de openid es necesario y puede utilizar el atributo scope para editar los ámbitos necesarios. Por ejemplo, puede cambiar el atributo scope necesarios por openid profile email.
    • Este RP registra su URL de redirección con el OP como https://<nombre host>:<puerto ssl>/oidcclient/redirect/client01, donde tanto el nombre de host y el puerto ssl se resuelven automáticamente y client01 es el ID del elemento de configuración openidConnectClient. Si hay un proxy delante de la RP, puede alterar temporalmente el nombre de host y el puerto con el atributo redirectToRPHostAndPort, y establecer redirectToRPHostAndPort en https://<host name>:<ssl port>.
  3. Configure un registro de usuario. Las identidades de usuario que devuelve el OP no están correlacionadas con un usuario del registro de forma predeterminada, por lo que no es necesario configurar usuarios en el registro. No obstante, si el atributo mapIdentityToRegistryUser del elemento openidConnectClient se establece en true, debe haber una entrada de usuario para la identidad correspondiente que se devuelve del OP para que la autenticación y la autorización sean satisfactorias. Para obtener más información sobre la configuración de un registro de usuarios, consulte Configuración de un registro de usuarios en Liberty.
  4. Configure el almacén de confianza del servidor para que incluya los certificados de firmante de los proveedores de OpenID Connect que están soportados. Para obtener más información sobre los almacenes de claves, consulte Habilitación de la comunicación SSL en Liberty.
  5. Modifique la configuración SSL del servidor para que utilice el almacén de confianza configurado.
    <sslDefault sslRef="DefaultSSLSettings" /> 
    <ssl id="DefaultSSLSettings" keyStoreRef="myKeyStore" trustStoreRef="myTrustStore" /> 	
    <keyStore id="myKeyStore" password="{xor}EzY9Oi0rJg==" type="jks" location="${server.config.dir}/resources/security/BasicKeyStore.jks" /> 	
    <keyStore id="myTrustStore" password="{xor}EzY9Oi0rJg==" type="jks" location="${server.config.dir}/resources/security/BasicTrustStore.jks" />

    OpenID Connect se ha configurado para utilizar la configuración SSL predeterminada especificada por el servidor. Por lo tanto, la configuración SSL predeterminada del servidor debe utilizar el almacén de confianza que se ha configurado para OpenID Connect.

  6. Opcional: Configure un proveedor OpenID Connect de terceros.

    Para configurar el cliente de Liberty OpenID Connect para utilizar el proveedor OpenID Connect de terceros como Microsoft Azure o Google, debe configurar los atributos siguientes. Los valores de atributo pueden obtenerse invocando el punto final de descubrimiento del OP, que proporciona un documento JSON en la vía de acceso formada concatenando la serie /.well-known/openid-configuration con el emisor.

    1. Establezca el atributo jwkEndpointUrl en el URL del documento JWK del conjunto de claves web JSON del OP que se ha definido como jwks_uri en el archivo de descubrimiento. Por ejemplo, para utilizar el OP de Google, puede establecer jwkEndpointUrl = "https://www.googleapis.com/oauth2/v2/certs".
    2. Establezca el atributo issuerIdentifier en issuer, tal como se define en el archivo de descubrimiento. Un ID de señal que no contenga este valor como una reclamación iss se rechazará. Por ejemplo, puede establecer issuerIdentifier="accounts.google.com" si está utilizando Google como su OP.
    3. Establezca signatureAlgorithm="RS256". El algoritmo de firma predeterminado del cliente de OpenID Connect de Liberty es HS256.
    4. Establezca el atributo userIdentityToCreateSubject en un nombre de reclamación utilizado por la señal de ID del proveedor que representa el identificador exclusivo de un usuario. Por ejemplo, puede establecer userIdentityToCreateSubject ="email" si está utilizando el OP de Google, y userIdentityToCreateSubject ="upn" o userIdentityToCreateSubject ="unique_name" si está utilizando Microsoft Azure.
    5. Establezca el atributo groupIdentifier en el nombre de reclamación que representa los roles o pertenencias de grupo del usuario. Por ejemplo, puede establecer groupIdentifier="groups" si está utilizando Microsoft Azure.

    Si desea más opciones de configuración de OpenID Connect Client, consulte OpenID Connect Client

  7. Opcional: filtro de autenticación.

    Cuando la característica openidConnectClient-1.0 está habilitada y el elemento openidConnectClient no está configurado con un atributo authFilterRef, cualquier solicitud no autenticada se autentica mediante el proveedor de OpenID Connect.

    Si desea más información sobre cómo configurar el filtro de autenticación, consulte Filtros de autenticación.

  8. Soporte a varios proveedores de OpenID Connect.

    Puede configurar Liberty como Relying Party de OpenID Connect en varios proveedores de OpenID Connect creando varios elementos openidConnectClient y varios filtros de autenticación. Cada elemento openidConnectClient define una relación de inicio de sesión único con un proveedor de OpenID Connect y utiliza el atributo authFilterRef para hacer referencia a un filtro de autenticación.

  9. Configure un algoritmo de firma de señal de ID soportado.

    Puede configurar un cliente de OpenID Connect de Liberty para dar soporte el algoritmo de firma RS256 en una señal de ID. El algoritmo de firma predeterminado del cliente de OpenID Connect de Liberty es HS256. Si configura RS256 como algoritmo de firma de la señal de ID estableciendo signatureAlgorithm="RS256", debe configurar trustStoreRef y trustAliasName, a menos que el OP dé soporte a un punto final JWK.

  10. Opcional: Configure un tipo de otorgamiento "implícito".

    La característica openidConnectClient-1.0 utiliza un tipo de otorgamiento Código de autorización para solicitar una señal de autenticación de usuario, y puede configurar la característica openidConnectClient-1.0 de Liberty para utilizar un tipo de otorgamiento "implícito" añadiendo grantType="implicit" al archivo server.xml. Si el servidor de Liberty y el proveedor de OpenID Connect se encuentran en distintos cortafuegos, debe utilizar esta opción de configuración.

  11. Opcional: La parte de confianza de Liberty OpenID Connect crea automáticamente una señal de inicio de sesión único (SSO), una vez que se ha procesado la señal del ID. Puede configurar Liberty para que no cree una señal de SSO para el servidor, o una señal de SSO para el recurso que está protegido con OpenID Connect añadiendo la propiedad de configuración disableLtpaCookie="true". Si se establece el valor disableLtpaCookie="true", el cliente de Liberty OpenID Connect solo aceptará solicitudes de autenticación que se hayan autenticado previamente con el proveedor de OpenID Connect configurado y el ciclo de vida de la sesión de autenticación está limitado al ciclo de vida de la señal del ID.
  12. Opcional: Puede configurar un OpenID Connect Client para que acepte de forma opcional una señal de acceso de transporte de OAuth 2.0 válida como una señal de autenticación sin redirigir la solicitud a un proveedor de OpenID Connect. Si una solicitud contiene una señal de acceso de transporte OAuth 2.0 válida, el Liberty OpenID Connect Client validará automáticamente la señal de acceso y creará un sujeto autenticado basándose en el resultado de validación de la señal. Si la solicitud no contiene una señal de acceso o la señal de acceso no es válida, el Liberty OpenID Connect Client sigue redirigiendo el usuario a un proveedor de OpenID Connect. Esta función permite al servidor Liberty prestar servicio tanto al cliente de navegador y al cliente que no es navegador como un cliente RESTful. Puede añadir inboundPropagation=”supported” a la configuración para habilitar esta función.
  13. [16.0.0.4 and later]Si el entorno de alojamiento no permite el acceso a la raíz de contexto /oidcclient, modifique la raíz de contexto configurando el elemento oidcClientWebapp.

    De forma predeterminada, el servlet de redirección del cliente de OpenID Connect de Liberty escucha en la raíz de contexto /oidcclient y su formato de URL de redirección es https://<nombre_host>:<puerto_ssl>/oidcclient/redirect/<ID_configuración>. Si no puede utilizar esta raíz de contexto, establezca una raíz de contexto diferente en la configuración del servidor.

    Por ejemplo, si el entorno de alojamiento necesita que utilice la raíz de contexto /acme/openid, añada el elemento siguiente:
    <oidcClientWebapp contextPath="/acme/openid" />

    El formato de URL de redirección resultante es https://<nombre_host>:<puerto_ssl>/acme/openid/redirect/<ID_configuración>.

Resultados

Ahora ha establecido la configuración mínima necesaria para configurar un servidor de Liberty como un cliente de OpenID Connect con capacidad para comunicarse con otros servidores de Liberty configurados como proveedores de OpenID Connect.

Icono que indica el tipo de tema Tema de tarea



Icono de indicación de fecha y hora Última actualización: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_config_oidc_rp
Nombre de archivo:twlp_config_oidc_rp.html