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
- 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>
- 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>.
- 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.
- 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.
- 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.
- 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.
- 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".
- 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.
- Establezca signatureAlgorithm="RS256". El algoritmo de firma predeterminado del cliente de OpenID Connect de Liberty es HS256.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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
Subtemas
- Invocación del punto final de autorización para OpenID Connect
En OpenID Connect, el punto final de autorización gestiona la autenticación y la autorización de un usuario. - Invocación del punto final de señal para OpenID Connect
En el flujo de código de autorización de OpenID Connect, un cliente utiliza el punto final de señal para obtener una señal de ID, una señal de acceso y una señal de renovación. - Invocación del punto final de introspección para OpenID Connect
El punto final de introspección permite a las cabeceras de las señales de acceso solicitar un conjunto de metadatos sobre una señal de acceso desde el proveedor de OpenID Connect que ha emitido la señal de acceso. La señal de acceso debe haberse obtenido mediante la autenticación de OAuth o OpenID Connect. - Invocación del servicio de correlación de cobertura
El servicio de correlación de cobertura es un punto final sin proteger que devuelve una matriz JSON (JavaScript Object Notation) de prefijos URI terminados en barra inclinada. La matriz de prefijos URI designa qué contextos web forman parte de un grupo de inicio de sesión único (SSO), lo que permite a los clientes saber si un destino de URI se considera seguro para enviarle una señal de acceso. - Invocación del punto final UserInfo para OpenID Connect
El punto final UserInfo devuelve reclamaciones sobre un usuario que se autentica con la autenticación de OpenID Connect. - Invocación del punto final de gestión de sesiones para OpenID Connect
El punto final de gestión de sesiones permite a las partes dependiente de OpenID Connect supervisar el estado de inicio de sesión de un usuario con un determinado proveedor de OpenID Connect (OP) mientras se minimiza el tráfico de red. Con la ayuda del punto final de gestión de sesiones, una Relying Party (RP) puede finalizar la sesión de un usuario que ha finalizado la sesión del proveedor de OpenID Connect.


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