Gestionar recuperación de secreto de cliente OAuth
Introducción
Con Oracle Access Management (OAM), puede crear clientes OAuth que se utilizan para interactuar con aplicaciones y proveedores OAuth. Por defecto, el secreto de cliente OAuth, una vez creado, se almacena hash y no se puede utilizar, es decir, no se puede recuperar. A partir del paquete de parches de octubre de 2022, puede recuperar el secreto de un cliente OAuth en formato utilizable. Los administradores deben activar la función de recuperación de cliente OAuth para recuperar el secreto de cliente. Los clientes OAuth anteriores que se crearon antes del parche se deben actualizar/restablecer para poder recuperar el secreto. Si la función de recuperación de secreto de cliente OAuth está desactivada, la API GET de cliente OAuth devolverá el secreto en formato hash (no utilizable) incluso después de aplicar el BP de octubre de 2022.
Objetivos
Configure el servicio OAuth en Oracle Access Management.
Requisitos
- Instalar Oracle Access Management y configurar la función OAuth (Visión general de OAM OAuth)
- Administrar el servicio OAuth en Oracle Access Management ( Configurar OAM OAuth)
Tarea 1: Activar la recuperación del secreto de cliente OAM OAuth
-
Según la configuración, puede activar o desactivar esta función. Si la configuración no está presente, OAM asume que la función está desactivada. Ruta de configuración:
/DeployedComponent/Server/NGAMServer/Profile/ssoengine/OAuthConfig
Nombre de configuración:ClientSecretRecoveryEnabled
El siguiente comando le permite determinar si la recuperación del secreto de cliente está activada o desactivada.curl --location --request GET 'https://<admin-host>:<admin-port>/iam/admin/config/api/v1/config?path=/DeployedComponent/Server/NGAMServer/Profile/ssoengine/OAuthConfig' --header 'Authorization: <Basic Authz Header>'
-
Si la configuración no está presente o está desactivada (falso), ejecute el siguiente comando para agregar o actualizar el valor a true. Nota: Omita este paso si el valor ya existe y está definido en true.
curl --location --request PUT 'https://<admin-host>:<admin-port>/iam/admin/config/api/v1/config?path=/DeployedComponent/Server/NGAMServer/Profile/ssoengine/OAuthConfig' --header 'Authorization: <Basic Authz Header>' /--header 'Content-Type: application/xml' --data-raw '<Setting Name="OAuthConfig" Type="htf:map" Path="/DeployedComponent/Server/NGAMServer/Profile/ssoengine/OAuthConfig"> <Setting Name="ClientSecretRecoveryEnabled" Type="xsd:boolean">true</Setting></Setting>'
Descripción de la ilustración updating_config_to_true.jpg
Verifique que el valor se ha actualizado correctamente mediante la API de GET en el paso 1.
Tarea 2: recuperar los detalles del cliente OAuth - Para el cliente recién creado
Cuando la función Recuperación de secreto está activada en un cliente, la API de cliente GET devolverá el secreto con el formato Basic <base64 encoded id:secret>
.
-
Cree el cliente con los siguientes atributos.
- nombre de cliente:
SampleClientNew1
- ID de cliente:
SampleClientNew1_id
- secreto:
client_secret
- nombre de cliente:
-
Recupere los detalles del cliente mediante la API de cliente OAuth.
curl --location --request GET 'https://<admin-host>:<admin-port>/oam/services/rest/ssa/api/v1/oauthpolicyadmin/client?identityDomainName=SampleDomain&name=SampleClientNew1' --header 'Authorization: <Basic Authz Header>' --header 'Accept: application/json'
El secreto devuelto es:
Basic U2FtcGxlQ2xpZW50TmV3MV9JZDpjbGllbnRfc2VjcmV0
El valor de base 64 descodificado es:SampleClientNew1_Id:client_secret
Tarea 3: recuperar los detalles del cliente OAuth para un cliente existente
Para un cliente creado antes de activar la función de recuperación de secretos, el secreto no se puede recuperar a menos que la función se restablezca o actualice. La API de GET Client devuelve un mensaje para restablecer la función y recuperar el valor.
-
Cree el cliente con los siguientes atributos.
- nombre de cliente:
SampleClientOld1
- ID de cliente:
SampleClientOld1_id
- secreto:
client_secret
- nombre de cliente:
-
Recupere los detalles del cliente mediante la API de cliente OAuth.
curl --location --request GET 'https://<admin-host>:<admin-port>/oam/services/rest/ssa/api/v1/oauthpolicyadmin/client?identityDomainName=SampleDomain&name=SampleClientOld1' --header 'Authorization: <Basic Authz Header>' --header 'Accept: application/json'
Descripción de la ilustración get_old_client.jpg
El mensaje indica: OAMSSA-06399: el secreto actual no se puede recuperar. Restablezca el secreto para que sea recuperable.
-
Actualice el secreto de cliente mediante la API de cliente OAuth.
curl --location --request PUT 'https://<admin-host>:<admin-port>/oam/services/rest/ssa/api/v1/oauthpolicyadmin/client?identityDomainName=SampleDomain&name=SampleClientOld1' --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: <Basic Authz Header>' --data-raw '{ "secret": "client_secret_new" }'
Descripción de la ilustración client_secret_modify.jpg
Nuevo secreto:
client_secret_new
-
Recupere los detalles actualizados del cliente mediante la API de cliente OAuth. La API de GET Client devolverá el secreto con el formato
Basic <base64 encoded id:secret>
.curl --location --request GET 'https://<admin-host>:<admin-port>/oam/services/rest/ssa/api/v1/oauthpolicyadmin/client?identityDomainName=SampleDomain&name=SampleClientOld1' --header 'Authorization: <Basic Authz Header>' --header 'Accept: application/json'
Descripción de la ilustración get_old_client_post_modify.jpg
El secreto devuelto es:
Basic U2FtcGxlQ2xpZW50T2xkMV9JZDpjbGllbnRfc2VjcmV0X25ldw==
El valor de base 64 descodificado es:SampleClientOld1_Id:client_secret_new
-
Si la configuración
ClientSecretRecoveryEnabled
se actualiza a false, la API de cliente GET OAuth devolverá un secreto hash en lugar de un resultado codificado base64, que es el comportamiento anterior al parche de paquete de octubre de 2022.
Agradecimientos
- Autores: Salil Jain, Monica Sankar
- Colaboradores: equipo de desarrollo de Oracle Access Management
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Manage OAuth Client Secret Retrieval
F56933-01
October 2022
Copyright © 2022, Oracle and/or its affiliates.