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 de nuvem integrado aos 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.

  • Exemplos de cURL são usados no procedimento para obter um token de acesso dos domínios de identidades e, em seguida, acessar um ponto final REST do serviço de plataforma de 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 da 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 do 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 My Services do seu domínio de identidades.

    Observação

    Você precisa ter a atribuição de administrador de domínio de identidades ou de administrador PaaS para seguir as etapas deste procedimento.
  2. Na lista de serviços, localize a entrada do domínio de identidades e clique em 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. Clique em Abrir Console de Serviço, expanda a Gaveta de Navegação e, em seguida, clique em Aplicativos.

  5. No campo de pesquisa, digite PSM e clique no í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 criadas antes da versão 18.1.4.
  6. Clique no nome do aplicativo com o título 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. Clique em 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. Clique em 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 do Escopo para Permissão de 1PaaS.

    urn:opc:resource:consumer::all

Obter um Token de Acesso do OAuth

Com as informações coletadas, use o ponto final /oauth2/v1/token da API REST dos domínios de identidade 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 do usuário

  • primary-audience-and-scope é uma concatenação do URL do público-alvo 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, um exemplo da resposta retornada.

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

A string de token está truncada no exemplo de resposta. Copie toda a string de token (entre aspas), conforme mostrado em sua resposta.

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

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

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

Em que:

  • token-string é o token de acesso 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"