Usando um Token OAuth para Platform Services

O serviço de token OAuth 2.0 fornecido pelos domínios de identidade é um mecanismo que permite usar um token seguro para acessar os pontos finais REST do Oracle Cloud Platform Services (PaaS).

Nota

  • Para acessar um serviço de plataforma em nuvem integrado a domínios de identidades, você precisa do URL do domínio de identidades. Se você não souber o URL do domínio de identidades, consulte Localizando um URL do Domínio de Identidades.

  • Os exemplos de cURL são usados no procedimento para obter um token de acesso de domínios de identidades e, em seguida, acessar um ponto final REST de serviço de plataforma em nuvem com o token.

Um token de acesso OAuth tem um valor de expiração de 86.400 segundos (24 horas). Para fazer solicitações de API REST 24 horas após obter um token de acesso, você precisa obter um novo token.

Pré-requisitos

Obtenha as informações a seguir no domínio de identidades antes de começar.

  • URL do domínio de identidades
  • ID do cliente
  • Segredo do cliente
  • URL do público-alvo principal
  • Escopo permitido
  1. Acesse o painel de controle Meus Serviços do seu domínio de identidades.

    Observação

    Você precisa ter a atribuição de administrador de domínio de identidades ou a atribuição de administrador PaaS para seguir as etapas deste procedimento.
  2. Na lista de serviços, localize a entrada do domínio de identidades e selecione Identity Cloud.

  3. Na guia Visão Geral, localize a seção Instâncias de Serviço e copie o valor mostrado no campo URL da Instância de Serviço.

    Por exemplo: https://<domainURL>.identity.oraclecloud.com/ui/v1/adminconsole

    Em que <domainURL> é a parte do servidor REST do URL do domínio de identidades (que faz parte do URL do ponto final para solicitar um token de acesso).

  4. Selecione Abrir Console de Serviço, expanda a Gaveta de Navegação e selecione Aplicativos.

  5. No campo de pesquisa, informe PSM e selecione o ícone de pesquisa. Nos resultados, localize a entrada intitulada Aplicativo PSM para suporte à API OAuth.

    Observação

    O Aplicativo Platform Service Manager (PSMApp) não está disponível para contas do Oracle Cloud que foram criadas antes da versão 18.1.4.
  6. Selecione o nome do aplicativo intitulado Aplicativo PSM para suporte à API OAuth. O nome tem o formato PSMApp-cacct-string-of-letters-and-numbers.

    Por exemplo:

    PSMApp-cacct-9z8x7c6v5b4n3m

    Este é o aplicativo cliente PSM confiável do domínio de identidades, que é criado automaticamente para contas do Oracle Cloud (após a versão 18.1.4) e associado ao Oracle Cloud Platform Service.

  7. Selecione Configuração. Em Informações Gerais, copie o valor mostrado no campo ID do Cliente.

    Este é o ID do cliente PSMApp. Por exemplo:

    PSMApp-cacct-9z8x7c6v5b4n3m_APPID

  8. Selecione Mostrar Segredo e copie o valor.

    Este é o segredo do cliente PSMApp. Por exemplo:

    c53b437-1768-4cb6-911e-1e6eg2g3543

  9. Expanda Recursos. Copie o valor mostrado no campo Público-alvo Principal.

    Este é o URL do público-alvo principal PSMApp. Por exemplo:

    https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com

  10. Na seção Escopos Permitidos, copie o valor Escopo para a Permissão 1PaaS.

    urn:opc:resource:consumer::all

Obter um Token de Acesso OAuth

Com as informações coletadas, use o ponto final /oauth2/v1/token da API REST dos domínios de identidades para obter um token.

   curl -k 
   -X POST -u "client-id:client-secret" 
   -d "grant_type=password&username=yourusername&password=yourpassword&scope=https://primary-audience-and-scope" "https://identity-cloud-service-instance-url/oauth2/v1/token"

Em que:

  • client-id é o ID do cliente PSMApp

  • client-secret é o segredo do cliente PSMApp

  • yourusername é o nome de usuário do serviço de plataforma na nuvem com uma atribuição de administrador

  • yourpassword é a senha do nome de usuário

  • primary-audience-and-scope é uma concatenação do URL do público principal PSMApp e do escopo de permissão 1PaaS

  • identity-cloud-service-instance-url é a parte do servidor REST do URL do domínio de identidades

Por exemplo:

   curl -k 
-X POST -u "PSMApp-cacct-9z8x7c6v5b4n3m_APPID:c53b437-1768-4cb6-911e-1e6eg2g3543" 
-d "grant_type=password&username=yourusername&password=yourpassword&scope=https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.comurn:opc:resource:consumer::all" "https://<domainURL>.identity.oraclecloud.com/oauth2/v1/token"

A seguir é mostrado um exemplo da resposta retornada.

{
    "access_token": "eyJ7NXQ...fMf46Q0yKopDxQ",
    "token_type": "Bearer",
    "expires_in": 86400
}
Observação

A string de token é truncada no exemplo de resposta. Copie toda a string de token (dentro das aspas) conforme mostrado na sua resposta.

Usar o Token de Acesso OAuth nas Solicitações da API REST do Cloud Platform Service

Após obter um token do acesso OAuth 2.0, forneça o token em um cabeçalho do token do portador da solicitação REST do serviço da plataforma de nuvem.

   curl -i 
   -X GET 
   -H "Authorization: Bearer token-string" "https://primary-audience/rest-endpoint-path"

Em que:

  • token-string é o token da OAuth que você obteve

  • primary-audience é o URL do público-alvo principal PSMApp

  • rest-endpoint-path é o caminho relativo que define o recurso REST do serviço de plataforma em nuvem. Observe que o ID do domínio de identidades pode ser usado no caminho.

Por exemplo, o comando cURL a seguir recupera todas as instâncias do Oracle Java Cloud Service.
   curl -i -X GET 
   -H "Authorization: Bearer eyJ7NXQ...fMf46Q0yKopDxQ" "https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com/paas/api/v1.1/instancemgmt/idcs-9a888b7e6ebb44b4b65/services/jaas/instances"