Exemplo de Fluxo de Autorização de Duas Etapas do Tipo de Concessão de Troca de Token

Use os exemplos a seguir para criar suas solicitações de tipo de concessão de Troca de Token.

Cada um desses exemplos requer uma solicitação assinada. Para saber como criar solicitações de cabeçalho de assinatura, consulte Assinaturas de Solicitação.

Exemplo de Solicitação: Trocar uma Chave de API para um Token de Acesso ao Domínio de Identidades

Use a Chave de API de um Usuário para fazer uma solicitação assinada para obter um token de acesso para o usuário que possui essa Chave de API.
   curl  -X POST -sS https://<domainURL>/oauth2/v1/token -i 
   -H 'date: Mon, 20 Nov 2023 00:32:02 GMT' 
   -H 'x-content-sha256: 5AfZSV0021K+QUDAdfV7g4wwqBsF2rgVOQWRMIrTa9Q=' 
   -H 'content-type: application/x-www-form-urlencoded;charset=utf-8' 
   -H 'content-length: 185' 
   -H 'Authorization: Signature version="1",keyId="<key-id>",algorithm="rsa-sha256",headers="(request-target) date host x-content-sha256 content-type content-length",signature="<signature>"' 
   -d 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange&scope=http://www.ocisampleservice.com/resume&requested_token_type=urn:ietf:params:oauth:token-type:access_token'

Exemplo de Solicitação: Trocar um Controlador de Usuários por um Token de Acesso ao Domínio de Identidades

Use um Controlador de Usuários para fazer uma solicitação assinada para obter um token de acesso para esse usuário.
   curl  -X POST -sS https://<domainURL>/oauth2/v1/token -i 
   -H 'date: Mon, 20 Nov 2023 23:51:18 GMT' 
   -H 'x-content-sha256: n0NyZzoYSrKNC6r6f3mrNxYCtZOuG1zK2TY/r+N676Y=' 
   -H 'content-type: application/x-www-form-urlencoded;charset=utf-8' 
   -H 'content-length: 163' 
   -H 'Authorization: Signature version="1",keyId="<key-id>",algorithm="rsa-sha256",headers="(request-target) date host x-content-sha256 content-type content-length",signature="<signature>"' 
   -d 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange&scope=http://www.ocisampleservice.com/resume&requested_token_type=urn:ietf:params:oauth:token-type:access_token'
Os seguintes escopos adicionais também podem ser usados:
  • offline_access
  • urn:opc:resource:consumer:tokengenerator:appid::<appId>
  • urn:opc:resource:consumer:<scopeExtension>::<scopeQualifier>
Este é um exemplo de solicitação usando o escopo offline_access.
   curl  -X POST -sS https://<domainURL>/oauth2/v1/token -i 
   -H 'date: Mon, 20 Nov 2023 18:58:49 GMT' 
   -H 'x-content-sha256: 7zRa1qI4iIQouzn2TCTisZKi1CSoXRDe1pUJ58IFyVk=' 
   -H 'content-type: application/x-www-form-urlencoded;charset=utf-8' 
   -H 'content-length: 284' 
   -H 'Authorization: Signature version="1",keyId="<key-id>",algorithm="rsa-sha256",headers="(request-target) date host x-content-sha256 content-type content-length",signature="<signature>"' 
   -d 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange&client_id=<client-id>&scope=http://www.docservice.com/report offline_access&isCLI=true&requested_token_type=urn:ietf:params:oauth:token-type:access_token???
Quando esse escopo é incluído, um token de acesso e um token de atualização são produzidos. O formato do token de atualização é listado no exemplo de resposta abaixo.
{
    "access_token": "<access-token>",
    "token_type": "Bearer",
    "expires_in": 3600
    "refresh_token": "<refresh token>"
}

Exemplo de Solicitação: Trocar um Controlador de Instâncias (IPST) por um Token de Acesso ao Domínio de Identidades

Use um Controlador de Instâncias para fazer uma solicitação assinada para obter um token de acesso para essa instância.
   curl  -X POST -sS https://<domainURL>/oauth2/v1/token -i 
   -H 'date: Mon, 20 Nov 2023 12:07:10 GMT' 
   -H 'x-content-sha256: t7NyZzoWSrKNC6r6f3mrNxYCtZOuG1zK2TY/r+N676Y=' 
   -H 'content-type: application/x-www-form-urlencoded;charset=utf-8' 
   -H 'content-length: 170' 
   -H 'Authorization: Signature version="1",keyId="<key-id>",algorithm="rsa-sha256",headers="(request-target) date host x-content-sha256 content-type content-length",signature="<signature>"' 
   -d 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange&scope=http://www.ocisampleservice.com/resume&requested_token_type=urn:ietf:params:oauth:token-type:access_token'

Exemplo de Solicitação: Trocando o Controlador de Recursos (RPST) para um Token de Acesso ao Domínio de Identidades

Use um Controlador de Recursos para fazer uma solicitação assinada para obter um token de acesso para esse recurso.
   curl  -X POST -sS https://<domainURL>/oauth2/v1/token -i 
   -H 'date: Mon, 20 Nov 2023 01:17:33 GMT' 
   -H 'x-content-sha256: t7NyZzoWSrKNC6r6f3mrNxYCtZOuG1zK2TY/r+N676Y=' 
   -H 'content-type: application/x-www-form-urlencoded;charset=utf-8' 
   -H 'content-length: 197' 
   -H 'Authorization: Signature version="1",keyId="<key-id>",algorithm="rsa-sha256",headers="(request-target) date host x-content-sha256 content-type content-length",signature="<signature>"' 
   -d 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange&scope=http://www.ocisampleservice.com/resume&requested_token_type=urn:ietf:params:oauth:token-type:access_token'

Exemplo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no formato JSON quando você usa o tipo de concessão Token Exchange para obter um token de acesso para todas as solicitações de fluxo de 2 etapas.
{
    "access_token": "<access-token>",
    "token_type": "Bearer",
    "expires_in": 3600
}