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

  1. 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>
  2. 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.

  3. 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.
  4. 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.
  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}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.

  6. [16.0.0.3 y posterior]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/.

  7. [16.0.0.4 y posterior]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.

Resultados

Ha completado la configuración mínima que se necesita para configurar un servidor de Liberty como un proveedor de OpenID Connect capaz de comunicarse con otros servidores de Liberty configurados como clientes 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-libcore-mp&topic=twlp_config_oidc_op
Nombre de archivo:twlp_config_oidc_op.html