Configuración de un proveedor de OpenID Connect en Liberty
Puede configurar un servidor de Liberty para que funcione como un proveedor de OpenID Connect, o un servidor de autorización, para aprovechar el inicio de sesión único web.
Acerca de esta tarea
Puede configurar un servidor de Liberty para actuar como un proveedor de OpenID Connect habilitando la característica openidConnectServer-1.0 de Liberty, además de otra información de configuración.
Procedimiento
- Añada la característica de Liberty openidConnectServer-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
openidConnectServer-1.0.
<feature>openidConnectServer-1.0</feature> <feature>ssl-1.0</feature>
- Defina un proveedor de servicios OAuth. OpenID Connect se compila encima del
protocolo OAuth 2.0 y debe configurar un proveedor de servicios OAuth
válido. La configuración de un proveedor de servicios OAuth incluye los elementos
oauth-roles, oauthProvider y de registro
de usuarios adecuados. Cualquier usuario que esté autorizado para utilizar OpenID Connect
también debe correlacionarse con authenticated oauth-roles.
Para obtener más información, consulte
Definición de un proveedor de servicios OAuth.
Los metadatos de OAuth se actualizan para OpenID Connect y las principales adiciones se realizan en los metadatos del cliente. Si utiliza la modalidad databaseStore para el registro de clientes, consulte Configuración de un proveedor de OpenID Connect para que acepte solicitudes de registro de cliente. Se recomienda seguir el documento para gestionar los clientes. Si utiliza la modalidad localStore para el registro de clientes, puede registrar scope, preAuthorizedScope, grantTypes, responseTypes, introspectTokens y functionalUserId, así como otros atributos.
- Añada un elemento openidConnectProvider, cuyo atributo
oauthProviderRef hace referencia al oauthProvider
configurado. Un openidConnectProvider sólo puede hacer referencia una vez a
cada oauthProvider y dos o más elementos openidConnectProvider
no pueden hacer referencia al mismo oauthProvider. El atributo name y el atributo
secret del elemento del cliente deben coincidir con los
atributos client
ID y client secret del cliente de OpenID Connect
correspondiente. Este ejemplo funciona con el cliente de OpenID Connect del servidor de Liberty predeterminado. Nota: En este ejemplo, el OP espera que el puerto SSL del cliente se establezca en 443.
<openidConnectProvider id="OidcConfigSample" oauthProviderRef="OAuthConfigSample" /> <oauthProvider id="OAuthConfigSample"> <localStore> <client name="client01" secret="{xor}LDo8LTor" displayname="client01" scope="openid profile email" redirect="https://server.example.com:443/oidcclient/redirect/client01"/> </localStore> </oauthProvider>
Nota: Un cliente válido debe registrar su nombre, redirección, ámbito y secreto para el tipo de otorgamiento authorization_code. - Configure el almacén de confianza del servidor para que incluya los certificados de firmante de las partes dependientes de OpenID Connect o clientes 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}Lz4sLCgwLTs=" type="jks" location="${server.config.dir}/resources/security/BasicKeyStore.jks" /> <keyStore id="myTrustStore" password="{xor}Lz4sLCgwLTs=" 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.
El formulario de consentimiento del usuario en OpenID Connect es conectable, lo que permite a los proveedores crear y mantener su propio formulario de consentimiento. Como este formulario se recupera a través de SSL, debe configurar el almacén de confianza para que incluya el certificado de firmante del servidor donde se aloja el formulario de consentimiento. Si se utiliza el formulario de consentimiento predeterminado y el almacén de confianza para OpenID Connect se ha configurado para que sea diferente del almacén de confianza utilizado por el servidor Liberty, debe importar el certificado de firmante del servidor Liberty en el almacén de confianza de OpenID Connect.
Nota: Para utilizar OpenID Connect, el atributo scope debe incluir openid en la lista de ámbitos.Para ver más opciones de configuración del proveedor de OpenID Connect, consulte OpenID Connect Provider.
Si desea más opciones de configuración de OAuth, consulte OAuth.
Opcional: Configure el proveedor de OpenID Connect de Liberty para emitir señales JWT (JSON Web Token) como señales access_token.
De forma predeterminada, Liberty emite señales access_token opacas. Las señales opacas requieren que el destinatario de la señal devuelva la llamada al servidor que emitió la señal. Puede configurar el proveedor de OpenID Connect de Liberty para emitir, en su lugar, señales JWT como señales access_token, que incluyen el mecanismo de verificación de señal dentro de la señal, estableciendo jwtAccessToken="true" en el elemento de configuración oauthProvider o implementando la interfaz de programación de servicio (SPI) com.ibm.wsspi.security.oauth20.JwtAccessTokenMediator.
Para obtener más información sobre la interfaz, consulte SPI de inicio de sesión único web de WebSphere OAuth 2.0 o la documentación de Java que se proporciona con el producto en el directorio ${wlp.install.dir}/dev/spi/ibm/.
Opcional: personalice el contenido de la señal id_token que el proveedor de OpenID Connect de Liberty envía.
De forma predeterminada, el proveedor de OpenID Connect de Liberty emite señales id_token que contienen la información de nombre de usuario y de pertenencia a grupos. Puede personalizar el contenido de la señal de las siguientes maneras:- Personalizar completamente el contenido de id_token implementando la SPI
com.ibm.wsspi.security.openidconnect.IDTokenMediator. La SPI proporciona la
mayor flexibilidad, para que pueda crear su propia señal personalizada.
Para obtener más información sobre la interfaz, consulte SPI de inicio de sesión único web de WebSphere OAuth 2.0 o la documentación de Java que se proporciona con el producto en el directorio ${wlp.install.dir}/dev/spi/ibm/.
- Captar atributos de usuario adicionales del registro de usuarios federados listando las
reclamaciones adicionales en el atributo customClaims del elemento
openidConnectProvider en la configuración del servidor. Si el nombre de
reclamación es diferente del nombre de atributo en el registro de usuarios federados, correlacione
el nombre de reclamación con el atributo en el elemento claimToUserRegistryMap.Por ejemplo, la siguiente configuración añade varias reclamaciones y correlaciona la reclamación alias con el atributo de registro seeAlso y la reclamación lastName con el atributo sn:
<openidConnectProvider id="MyOP" oauthProviderRef="MyOauth" customClaims= "alias, email, lastName, employeeType, office"> <claimToUserRegistryMap alias="seeAlso" lastName="sn"/> ... </openidConnectProvider>
Para obtener más información, consulte Configuración de las reclamaciones devueltas por el punto final UserInfo.
- Personalizar completamente el contenido de id_token implementando la SPI
com.ibm.wsspi.security.openidconnect.IDTokenMediator. La SPI proporciona la
mayor flexibilidad, para que pueda crear su propia señal personalizada.
Resultados
Subtemas
- Utilización de un proveedor de OpenID Connect como servidor de autorización OAuth 2.0
Un proveedor de OpenID Connect puede utilizarse como un proveedor de autorización OAuth 2.0 normal para emitir una access_token OAuth 2.0 y dar soporte a todos los tipos de otorgamiento OAuth 2.0. - Configuración de un proveedor de OpenID Connect para que acepte solicitudes de descubrimiento
El punto final de la configuración de descubrimiento proporciona información sobre las prestaciones soportadas por el servidor del proveedor de OpenID Connect (OP). - Configuración de las reclamaciones devueltas por el punto final UserInfo
Puede configurar el proveedor de Liberty OpenID Connect para personalizar las reclamaciones devueltas por el punto final UserInfo. - Configuración de un proveedor de OpenID Connect para habilitar solicitudes OAuth de dos segmentos
El flujo de OAuth típico consta de tres "segmentos" o etapas de interacción entre un cliente y un servidor de autorización. En los escenarios de OAuth de dos segmentos, el cliente utiliza ámbitos autorizados previamente para que no sea necesaria ninguna interacción con el usuario, lo que elimina la necesidad de ejecutar uno de los segmentos en el flujo normal. En concreto, no es necesario que el usuario se autentique en el servidor de autorización ni que dé el consentimiento para compartir la información especificada por los ámbitos solicitados. En su lugar, todos los parámetros de ámbito se consideran autorizados previamente y se añaden automáticamente a la señal de solicitud, que se envía al servidor de autorización. - Configuración de un proveedor de OpenID Connect para utilizar el algoritmo RSA-SHA256 de firma de señales de ID
Puede configurar un proveedor de OpenID Connect para utilizar el algoritmo RS256 de firma de señales de ID. - Configuración de un proveedor de OpenID Connect para que acepte señales web JSON (JWT) para el otorgamiento de autorización
Puede configurar un servidor de Liberty que actúa como proveedor de OpenID Connect para que acepte una señal web JSON a cambio de una señal de acceso. - Configuración de un proveedor de OpenID Connect para que acepte solicitudes de registro de cliente
El punto final de registro de cliente es un servidor gestionado por el administrador que se utiliza para registrar, actualizar, suprimir y recuperar información sobre una OpenID Connect Relying Party que tiene la intención de utilizar el proveedor de OpenID Connect. A su vez, el proceso de registro puede proporcionar información para que la Relying Party lo utilice, incluyendo el ID de cliente de OAuth 2.0 y el secreto de cliente, si no se especifican. - Formularios personalizados de OpenID Connect
Puede sustituir la página de inicio de sesión de formulario predeterminada para la autenticación de usuarios o desarrollar su propio formulario de consentimiento del usuario para recopilar datos de autorización del cliente. - Autenticación de usuarios
El proveedor de OpenID Connect da soporte a FormLogin de Java™ Platform, Enterprise Edition (J2EE) tradicional para la autenticación de usuarios.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_config_oidc_op
Nombre de archivo:twlp_config_oidc_op.html