get_token の使用

get_token ユーティリティを使用すると、Apigee 認証情報をアクセス トークンおよび更新トークンと交換できます。その後、これらのトークンを使用して Apigee 管理 API にアクセスできます。acurl とは異なり、get_token は単にトークンを取得してディスクに保存するだけです。有効なトークンをリクエストに追加し、有効期限が切れたときに新しいトークンを取得するのは、お客様自身で行ってください。

アクセス トークンは、OAuthSAML、または LDAP ワークフローで管理 API を呼び出す際に使用します。

前提条件: get_token を使用する前に、これをインストールする必要があります。

get_token の構文

get_token ユーティリティの構文は次のとおりです。

get_token -u email_address[:password] [-m mfa_code] [-p passcode]

各パラメータの説明は次のとおりです。

要素 必須? 説明
email_address 必須(初回のみ) Apigee アカウントに関連付けられているメールアドレス。初めて get_token を呼び出すときにメールアドレスを渡す必要があります。アクセス トークンと更新トークンが期限切れになるまで、再度メールアドレスを渡す必要はありません。
password 省略可 Apigee アカウントのパスワード。パスワードを省略すると、パスワードの入力が求められます。コマンドで直接パスワードを使用したくない場合は、パスワードの代わりにワンタイム コードのパスコードを使用できます(SAML の場合のみ)。
mfa_code 省略可 多要素認証(MFA)を有効にしている場合に get_token に渡す必要がある一時的なコード。MFA を有効にしていない場合は、このオプションを省略できます。
passcode 省略可 パスワードの代わりに使用できるワンタイム パスコード。パスコードを使用できるのは、SAML IDP で認証する場合のみです。LDAP IDP での認証にパスコードを使用することはできません。

例:

get_token
get_token -u ahamilton@apigee.com
get_token -u ahamilton@apigee.com -p 123456
get_token -u ahamilton@apigee.com -m 424242
get_token -u ahamilton@apigee.com:mypassw0rd -m 424242

呼び出しが成功すると、有効なアクセス トークンが stdout に出力され、アクセス トークンと更新トークンの両方が ~/.sso-cli に保存されます。トークンの有効期限に記載されているように、これらのトークンは期限切れになるまで使用できます。

get_token の最初の呼び出しが成功した後は、トークンの有効期限が切れるまで認証情報を含める必要はありません。

get_token の最初の呼び出し

最初の呼び出し時にオプションをまったく指定せずに get_token を呼び出した場合は、ユーザー名(メールアドレス)、パスワードまたはパスコード、一時的な多要素認証(MFA)コードを入力するよう求められます。

  • (SAML のみ)パスワードの代わりにパスコードを使用するには、パスワードの入力時に Enter キーを押します。
  • MFA を使用しない場合は、MFA コードの入力時に Enter キーを押します。

次の例は、初めて get_token を呼び出したときに、パスワードの代わりに MFA コードを使用して認証する場合を示します。

get_token
Enter username:
ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com'
[enter]
Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:
123456

ey42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJzdWIiOiIyZDFl
  <snip>
VlLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiwiYXBwcm54242

パスコードの入力をスキップするには、パスコードの入力時に Enter キーを押します。

リクエストにアクセス トークンを追加する

get_token の呼び出しが成功した後、取得したアクセス トークンを管理 API の呼び出しに使用するには、リクエストの Authorization ヘッダーでアクセス トークンを渡します。これには、次のようにいくつかの方法があります。

  • get_token の出力結果をコピーして、ヘッダーに直接挿入します。
    curl -v https://api.enterprise.apigee.com/v1/organizations/danger4242-eval \
      -H "Authorization: Bearer B42CnTIYPxr...88NI5Q"
  • コマンドを組み合わせてトークンを取得し、それをヘッダーに追加します。
    token=`get_token`; curl -H "Authorization: Bearer $token" \
      https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

    get_token は単一引用符ではなくバッククォートで囲まれているため、実行されます。

  • curl を呼び出すときにその内部で get_token を呼び出します。
    curl -H "Authorization: Bearer `get_token`" \
      https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

    get_token は単一引用符ではなくバッククォートで囲まれているため、実行されます。

このサンプルのリクエストでは、ahamilton-eval 組織に関する詳細が返されます。管理 API エンドポイントの一覧については、Apigee Management API リファレンスをご覧ください。

OAuth2、SAML、LDAP で get_token を使用する

get_token ユーティリティを OAuth2、SAML、LDAP のフローで使用して、アクセス トークンを取得および更新できます。

ただし、複数のフローを使用する場合は、別のマシンを使用するか、新しいトークンを定期的に取得しなければならないことがあります。詳細については、OAuth2 と SAML または LDAP を同時に使用するをご覧ください。