Apigee には、Apigee SSO と Edge 管理 API とのやり取りを簡素化する get_token ユーティリティと acurl
ユーティリティが用意されています。これらのツールは、トークンの生成、キャッシュ、更新、挿入を自動的に処理します。
ユーティリティは、OpenLDAP ノードの /opt/apigee/apigee-openldap/bin/ にインストールされます。
get_token ユーティリティ
get_token ユーティリティは、OIDC/OAuth2 アクセス トークンと更新トークンを取得します。2
つの主要な認証フローをサポートし、組み込みのトークン キャッシュが含まれています。
認証フロー
- デバイスコードフロー(RFC 8628): 外部 ID プロバイダ(SAML、Okta、OIDC など)を介して認証するユーザー向けに設計されています。メールアドレス(
-u <email>)のみを渡すと、このフローが開始され、ブラウザで承認するための URL とコードが表示されます。 - パスワード付与(ROPC): ヘッドレス マシンユーザーと自動スクリプト向けに設計されています。ユーザー名とパスワードの両方(
-u <user>:<password>)を渡すと、ブラウザ操作なしで Apigee SSO に対して直接認証されます。
トークン キャッシュと自動更新
get_token ユーティリティはトークンのライフサイクルを自動的に管理するため、有効期限を手動で追跡する必要はありません。
- キャッシュの確認: 呼び出されると、
get_tokenは~/.sso-cli/<username>-token.jsonのローカル キャッシュを確認します。有効なトークンが存在し、期限切れになっていない場合は、再認証せずにトークンを再利用します。 - 自動更新: キャッシュされたアクセス トークンの有効期限が切れていても、有効な更新トークンが存在する場合、ユーティリティは Apigee SSO で更新トークンを新しいアクセス トークンと自動的に交換します。
環境変数
必要に応じて、次の環境変数を使用して get_token の動作をカスタマイズできます。
SSO_LOGIN_URL: Apigee SSO の URL(デフォルト:http://localhost:9099)。CLIENT_ID: OAuth2 クライアント ID(デフォルト:edgecli)。CLIENT_SECRET: OAuth2 クライアント シークレット(デフォルト:edgeclisecret)。
acurl ユーティリティ
acurl ユーティリティは、標準の curl の透過的なラッパーです。すべての API リクエストに有効な Bearer トークンが含まれるようにします。
- 引数の分離: ユーティリティは
-u <user:password>または-u <user>引数を抽出し、get_tokenに渡します。他のすべての引数(-X、-H、-d、-v、-sなど)は、標準のcurlに直接転送されます。 - 実行:
get_tokenから有効なトークンを取得または取得すると、acurlは自動的に-H "Authorization: Bearer <token>"ヘッダーをcurl呼び出しに挿入します。
使用例
例 1: ユーザーのインタラクティブ ログイン
/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations
このコマンドは一時停止し、ブラウザにアクセスして外部 IDP を介して認証するようにユーザーに求め、承認されると API 呼び出しを実行します。
例 2: マシンユーザーのヘッドレス ログイン
/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations
このコマンドは、パスワード付与を介して直接認証し、API 呼び出しを直ちに実行します。
例 3: キャッシュされたトークンの再利用
/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users
トークンは前のステップでキャッシュされているため、-u 引数を再度指定する必要はありません。ユーティリティはキャッシュされたトークンを読み取り、自動的に挿入します。