トークン交換権限付与タイプ2-Legged認可フローの例

次の例を使用して、トークン交換付与タイプのリクエストを作成します。

これらの各例では、署名付きリクエストが必要です。署名ヘッダー・リクエストの作成方法について学習するには、署名のリクエストを参照してください。

リクエストの例: アイデンティティ・ドメイン・アクセス・トークンのAPIキーの交換

ユーザーのAPIキーを使用して、署名付きリクエストを行い、その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'

リクエストの例: アイデンティティ・ドメイン・アクセス・トークンのユーザー・プリンシパルの交換

ユーザー・プリンシパルを使用して、署名付きリクエストを行い、そのユーザーのアクセス・トークンを取得します。
   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'
次の追加スコープも使用できます。
  • offline_access
  • urn:opc:resource:consumer:tokengenerator:appid::<appId>
  • urn:opc:resource:consumer:<scopeExtension>::<scopeQualifier>
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???
このスコープが含まれる場合、アクセス・トークンとリフレッシュ・トークンの両方が生成されます。リフレッシュ・トークンの形式は、次のレスポンスの例にリストされています。
{
    "access_token": "<access-token>",
    "token_type": "Bearer",
    "expires_in": 3600
    "refresh_token": "<refresh token>"
}

リクエストの例: アイデンティティ・ドメイン・アクセス・トークンのInstance Principal (IPST)の交換

Instance Principalを使用して、署名付きリクエストを行い、そのインスタンスのアクセス・トークンを取得します。
   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'

リクエストの例: アイデンティティ・ドメイン・アクセス・トークンのリソース・プリンシパル(RPST)の交換

リソース・プリンシパルを使用して、署名付きリクエストを行い、そのリソースのアクセス・トークンを取得します。
   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'

レスポンスの例

次に、トークン交換権限付与タイプを使用してすべての2-leggedフロー・リクエストのアクセス・トークンを取得する場合の、JSON形式のレスポンス本文の内容を示します。
{
    "access_token": "<access-token>",
    "token_type": "Bearer",
    "expires_in": 3600
}