Puede configurar un servidor Liberty para que
funcione como un servidor de recursos protegidos de OAuth 2.0.
Acerca de esta tarea
Puede configurar un servidor Liberty para que actúe como
un servidor de recursos protegidos OAuth 2.0 habilitando la
característica openidConnectClient-1.0 en Liberty, y
estableciendo
inboundPropagation="required" además
de otra información de configuración. La configuración para el servidor de
recursos OAuth 2.0 es similar a Configuración de un cliente de OpenID Connect en Liberty.
Cualquier parte que esté en posesión de una señal de transporte
OAuth access_token puede utilizar dicha señal para
poder acceder a los recursos asociados en Liberty. El servidor Liberty valida de forma remota
access_token en el servidor de autorización OAuth o el proveedor de OpenID Connect directamente llamando al punto final de la introspección de la señal OAuth 2.0 o al punto final de información de usuario de OpenID Connect.
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 y
habilite el elemento como servidor de recursos protegidos de OAuth
2.0 añadiendo inboundPropagation=”required”. A
continuación aparece un ejemplo de una configuración mínima que
funciona con el proveedor de OpenId Connect del servidor Liberty y el
servidor de autorización
OAuth 2.0.
<openidConnectClient id="RS"
inboundPropagation="required"
clientId="client01"
clientSecret="{xor}LDo8LTor"
validationEndpointUrl="https://server.example.com:443/oidc/endpoint/OP/introspect">
</openidConnectClient>
Nota: En esta configuración de ejemplo, Liberty realiza la
introspección de la señal OAuth 2.0 estableciendo validationMethod="introspect". Se
crea un sujeto autenticado a partir del objeto JSON devuelto del
punto final de introspección directamente, si el requisito de un
registro de usuarios.
Nota: Para permitir que Liberty realice la introspección de la señal,
el servidor de recursos OAuth 2.0 de Liberty se debe registrar a sí
mismo con un cliente OAuth en el servidor de autenticación OAuth o el
proveedor de OpenId Connect, y puede realizar una solicitud de
introspección de señal. El servidor de autorizaciones proporciona los
elementos clientId y clientSecret.
- Configure el almacén de confianza del servidor para incluir los
certificados de firmante del servidor de autorización y modificar la
configuración SSL del servidor para que utilice el almacén de confianza configurado. Si desea más
información sobre almacenes de claves, consulte
Habilitación de la comunicación SSL en Liberty.
Si desea más información sobre almacenes de claves, consulte
Habilitación de la
comunicación SSL en Liberty.
- Opcional: configure un registro de usuarios.
La identidad de usuario devuelta por el servidor de
autorizaciones no se correlaciona con un usuario del registro de
forma predeterminado, así que no se necesita ningún usuario en el
registro de usuarios. Sin embargo, si el atributo
mapIdentityToRegistryUser del elemento
openidConnectClient está establecido en
true, debe haber una entrada de usuario para
la identidad apropiada devuelta del servidor de autorización para que
se produzcan satisfactoriamente la autenticación y autorización. Si
desea más información sobre cómo configurar un registro de usuarios,
consulte
Configuración de un
registro de usuarios en Liberty.
- Opcional: configure filtros de autenticación.
Cuando la característica openidConnectClient-1.0
está habilitada y el elemento openidConnectClient
no se ha configurado con un atributo authFilterRef,
cualquier intento de solicitud no autenticada se autentica mediante
este elemento openidConnectClient.
Si desea más información sobre cómo configurar el filtro de
autenticación, consulte
filtros de autenticación.
- Opcional: puede configurar Liberty como un servidor de recursos
OAuth 2.0 para que funcione con varios servidores de
autorización y proveedores OpenID Connect creando distintos
elementos openidConnectClient y varios
filtros de autenticación. Cada elemento
openidConnectClient define una relación de confianza
con un servidor de autorización o un proveedor de OpenId Connect y
utiliza el atributo authFilterRef para hacer
referencia a un filtro de autenticación.
- Opcional: puede configurar el servidor de recursos Liberty para
validar una señal y recibir información de usuario del punto final de información de usuario de OpenID
Connect estableciendo validationMethod="userinfo".
- Opcional: el servidor de recursos Liberty utiliza reclamaciones
que están en JSON y se reciben del servidor de autorización para
crear un asunto de autenticación, y puede definir reglas de cómo
correlacionar JSON con el asunto, consulte
userIdentifier, groupIdentifier,
UserUniqueIdentifier, realmIdentifier y
realmName en Cliente
de OpenID
Connect.
- Opcional: un servidor de recursos protegidos OAuth 2.0 de Liberty espera que cada solicitud proporcione una señal de acceso válida y
nunca utilizará una cookie de inicio de sesión único para la
autenticación. Sin embargo, es posible configurar Liberty para crear
una cookie de inicio de sesión único estableciendo authnSessionDisabled="false".
- Opcional: también puede implementar la SPI
com.ibm.wsspi.security.oauth.UserCredentialResolver
para correlacionar JSON con el asunto mediante programa.
Resultados
Ahora ha establecido la configuración mínima que es necesaria
para configurar un servidor
Liberty como un servidor de recursos
protegidos OAuth 2.0 capaz de comunicarse con un servidor de
autorización OAuth o un proveedor de OpenID Connect.