Management API を使用した OAuth2 トークンの取得

Management API を使用して、アクセス用の認証情報を交換したり、この後 OAuth ワークフローで Management API を呼び出すためのトークンを更新したりできます。

このセクションで説明する手法に加えて、acurl および get_token ユーティリティを使用して OAuth2 トークンを取得することもできます。

パス

POST https://login.apigee.com/oauth/token

リクエスト ヘッダー

パラメータ
Content-Type "application/x-www-form-urlencoded"
Accept "application/json;charset=utf-8"
Authorization

"Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0"

この値を環境変数にエクスポートして、Management API 呼び出しに再利用できます。例:


export CLIENT_AUTH=ZWRnZWNsaTplZGdlY2xpc2VjcmV0

curl ... -H "Authorization: Basic $CLIENT_AUTH" ...

フォーム パラメータ

パラメータ 要否
username 必須 Apigee アカウントに関連付けられているメールアドレス。ユーザー名は渡さないでください。
password 必須 Apigee アカウントのパスワード。
grant_type 必須

新しいアクセス トークンを取得するか、既存のトークンを更新するかを決定します。指定できる値は次のとおりです。

  • password: 新しいアクセス トークンを取得します。grant_type が password の場合、リクエストに Apigee 認証情報を含める必要があります。
  • refresh_token: リフレッシュ トークンを送信して、新しいアクセス トークンを取得します。grant_type が refresh_token の場合、リクエストに認証情報を含める必要はありません。
refresh_token 省略可 現在のアクセス トークンが期限切れになったときに新しいアクセス トークンを取得するために渡すトークン。このパラメータは、grant_type が refresh_token の場合に必要です。
mfa_token 省略可 アカウントの有効な多要素認証(MFA)コード。MFA を有効にしている場合にのみ必要です。

新しいアクセス トークンの取得

新しいアクセス トークンを取得するには、grant_type を password に設定します。

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
          -H "Accept: application/json;charset=utf-8" \
          -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
          -X POST https://login.apigee.com/oauth/token \
          -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

MFA が付いた新しいアクセス トークンの取得

MFA(多要素認証)を有効にした新しいアクセス トークンを取得するには、MFA コードを取得し、その値に mfa_token パラメータを設定します。

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
      -X POST https://login.apigee.com/oauth/token?mfa_token=424242 \
      -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

アクセス トークンの更新

アクセス トークンをリフレッシュするには、grant_type を refresh_token に設定し、既存のリフレッシュ トークンをフォーム パラメータとして追加します。

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8"
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
      -X POST https://login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN'

アクセス トークンを更新するときに、資格情報を渡す必要はありません。

レスポンス

成功すると、アクセス トークン、リフレッシュ トークン、関連情報が返されます。例:

{
      "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOimYyD8IP2IyYS1jNmNiLTQ4NTgtYjZkMS1mZjkyNGFkYTk1YWUiLCJzdWIiOiI0X0KLSNjZlNjM0ZC0zZjlhLTRiNYmFjNi1kYjE2M2M5OGEzOGYiLCJzY29wZSI6WyJzYbmlkIiwicGFzc3dvcmQud3JpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsImNpZCI6ImVkZ2VjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iYWM2LWRiMTYzYzk4YTM4ZiIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoid3dpdG1hbkBhcGlnZWUuY29tIiwiZW1haWwiOiJ3d2l0bWFuQGFwaWdlZS5jb20iLCJhdXRoX3RpbWUiOjE0NzMyNjU4NzcsImFsIjoyLCJyZXZfc2lnIjoiZTc0ZGY0M2QiLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3MzI2NzY3NywiaXNzIjoiaHR0cHM6Ly9sb2dpbi5hcGlnZWUuY29tL29hdXRoL3Rva2VuIiwiemlkIjoidWFhIiwi2ltLm1lIiwib3BlYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.AFuevkeGGUGSPED8leyEKaT-xg1xk_VEiKJLEpipVvQBXIqEc9wqcpm-ZuoatA9DhjASRuFSRaHH8Fasx_vBxEBsUNhRY-GTMw7_8fv4yRMOb2AO3WUl_NWwPkC8XRSI1zCMbAZicojsJ1n3OSP487Mu9dl9ByX5A_QfHV2_cj4l9-SD7u6vOdfdbBxbNMAQkfZLrVIEU8myF2dhKnNeMiuoHSHANsQFcx0_BFA1HnSUnVi4RYj1FlTs9SbcPnS1d7t7eVdxWz_q2OFVXNIBMELAvvM0WhXPYTW3Osve3UvvUs6ekGs-K-RCPSok-4-NJbdCDpZQQTgqHsrf77NTsw",
      "token_type": "bearer",
      "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmZTIIMZWI0ZS00YzFmLTRjOTEtYmY5Mi1mMzZLEMzNjZhMDctciIsInN1YiI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iY17LLWRiMTYzYzk4YTM4ZiIsInNjb3BlIjpbInNjaW0ubWUiLCJvcGVuaWQiLCJwYXNzd29yZC53cml0ZSIsImFwcHJvdmFscy5tZSIsIm9hdXRoLmFwcHJvdmFscyJdLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3NsaSIsImNsaWVudF9pZCI6ImVkZ2VjbGkiLCJpc3MiOiJodHRwczovL2xvZ2luLmFwaWdlZS5jb20vb2F1dGgvdG9rZW4iLCJ6aWQiOiJ1YWEiLCJncmFudF90eXBlIjoicGFzc3dvcmQiLCJ1c2VyX25hbWUiOiJ3d2l0bWFuQGFwaWdlZS5jbMzM1MDQ3NywiY2lkIjoiZWRnZW20iLCJvcmlnaW4iOiJ1c2VyZ3JpZCIsInVzZXJfaWQiOiI0NjZlNjM0ZC0zZjlhLTRiNDEtYmFjNi1kYjE2M2M5OGEzOGYiLCJhbCI6MiwicmV2X3NpZyI6ImU3NGRmNDNkIiwiYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.kBP5AkbRS7Tnp-5VAfTLVfkUbUer4gFEU6A7g202KTKiXbqTwPSmOIGFTK12XevVPQYmAaSMFAnempWKfY7sjaY7HC7q3mGl53_A18cnkKhtNq15wCnyMom_bX_MYLW1RQPFytJ6akSJ-JkoPFU0x_FQg1JIvub1A8eqQxcR0KP-QRCxYAS4HTjH80vDIxHNt1tg7clmpa3RlHri0dlPVVsSpTXXhkpXRg5QbiWMrpkACSV22c0x0KiNu7vx5A520VOCO7hQ7IzmVIcSWcRqI97L7WdCjH_q4105bs2qmW73670MC0UGiJ9t5B1S1cxwqpUEd-NAuCsY8SVn6eWzbA",
      "expires_in": 1799,
      "scope": "scim.me openid password.write approvals.me oauth.approvals",
      "jti": "9bf2cb2a-c6cb-4858-b6d1-ff924ada95ae"
    }

レスポンス値を保存します。

  • Management API への呼び出しでは access_token を使用します
  • アクセス トークンが期限切れになったときには refresh_token を使用し、リフレッシュする必要があります

次のようなレスポンスが返された場合、

{
      "error": "unauthorized",
      "error_description": "Bad credentials"
    }

リクエストの Authorization ヘッダーで上記の文字列(「ZWRnZWNsaTplZGdlY2xpc2VjcmV0」)を正確に使用してください。