Gerenciar Recuperação de Segredo do Cliente OAuth
Introdução
Usando o Oracle Access Management (OAM), você pode criar clientes OAuth que são usados para interagir com provedores e aplicativos OAuth. Por padrão, o segredo do cliente OAuth uma vez criado é armazenado com hash e não é utilizável, ou seja, não pode ser recuperado. A partir do Patch de Pacote de Outubro de 2022, você pode recuperar o segredo de um cliente OAuth em uma forma utilizável. Os administradores devem ativar o recurso de recuperação do cliente OAuth para recuperar o segredo do cliente. Os clientes OAuth mais antigos que foram criados antes do patch devem ser atualizados/redefinidos para que o segredo possa ser recuperado. Se o recurso de recuperação de segredo do Cliente OAuth estiver desativado, a API GET do Cliente OAuth retornará segredo em formato hash (não utilizável), mesmo após a aplicação de outubro de 2022 BP.
Objetivos
Configure o Serviço OAuth no Oracle Access Management.
Pré-requisitos
- Instale o Oracle Access Management e configure o recurso OAuth (Visão Geral do OAM OAuth)
- Administrar o Serviço OAuth no Oracle Access Management ( Configurar e Configurar o OAM OAuth)
Tarefa 1: Ativar recuperação de segredo do cliente OAuth do OAM
-
Dependendo da configuração, você pode desativar esse recurso. Se a configuração não estiver presente, o OAM presume que o recurso está desativado. Caminho de Definição de Configuração:
/DeployedComponent/Server/NGAMServer/Profile/ssoengine/OAuthConfig
Nome da Definição de Configuração:ClientSecretRecoveryEnabled
O comando a seguir permite determinar se a Recuperação Secreta do Cliente está ativada ou desativada.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>'
-
Se a configuração não estiver presente ou estiver desativada (falso), execute o comando a seguir para adicionar/atualizar o valor para verdadeiro. Observação: ignore essa etapa se o valor já existir e for definido como verdadeiro.
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>'
Descrição da ilustração updating_config_to_true.jpg
Verifique se o valor foi atualizado com sucesso usando a API GET na Etapa 1.
Tarefa 2: Recuperar detalhes do cliente OAuth - Para cliente recém-criado
Quando o recurso Recuperação de Segredo estiver ativado em um cliente, a API do cliente GET retornará o segredo no formato Basic <base64 encoded id:secret>
.
-
Crie o cliente com os atributos a seguir.
- nome do cliente:
SampleClientNew1
- id do cliente:
SampleClientNew1_id
- segredo:
client_secret
- nome do cliente:
-
Recupere os detalhes do cliente usando a API do 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'
O segredo retornado é:
Basic U2FtcGxlQ2xpZW50TmV3MV9JZDpjbGllbnRfc2VjcmV0
O valor Decodificado da Base 64 é:SampleClientNew1_Id:client_secret
Tarefa 3: Recuperar detalhes do cliente OAuth - Para um cliente existente
Para um cliente que foi criado antes da ativação do recurso de recuperação de segredo, o segredo não é recuperável, a menos que o recurso seja redefinido/atualizado. A API do Cliente GET retorna uma mensagem para redefinir o recurso para recuperar o valor.
-
Crie o cliente com os atributos a seguir.
- nome do cliente:
SampleClientOld1
- id do cliente:
SampleClientOld1_id
- segredo:
client_secret
- nome do cliente:
-
Recupere os detalhes do cliente usando a API do 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'
Descrição da ilustração get_old_client.jpg
A mensagem é: OAMSSA-06399: O segredo atual não é recuperável. Redefina o segredo para torná-lo recuperável.
-
Atualize o segredo do cliente usando a API do 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" }'
Descrição da ilustração client_secret_modify.jpg
Novo segredo:
client_secret_new
-
Recupere os detalhes atualizados do cliente usando a API do Cliente OAuth. A API do Cliente GET retornará o segredo no 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'
Descrição da ilustração get_old_client_post_modify.jpg
O segredo retornado é:
Basic U2FtcGxlQ2xpZW50T2xkMV9JZDpjbGllbnRfc2VjcmV0X25ldw==
O valor Decodificado da Base 64 é:SampleClientOld1_Id:client_secret_new
-
Se a configuração
ClientSecretRecoveryEnabled
for atualizada como falsa, a API do Cliente GET OAuth retornará um segredo hash, em vez do resultado codificado em base64, que é o comportamento anterior ao Patch do Pacote de Outubro de 2022.
Agradecimentos
- Autores: Salil Jain, Monica Sankar
- Colaboradores: Equipe de Desenvolvimento do Oracle Access Management
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Manage OAuth Client Secret Retrieval
F56933-01
October 2022
Copyright © 2022, Oracle and/or its affiliates.