Basic 認証は、Edge Management API を呼び出す際の認証方法の一つです。
たとえば、Edge 管理 API に次の curl
リクエストを行うと、
組織に関する情報:
curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
この例では、curl
-u
オプションを使用して基本認証を渡します。
認証情報を取得できます。別の方法として、OAuth2 トークンを Bearer
ヘッダーに含めて渡し、Edge Management API を呼び出すこともできます。次に例を示します。
curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
認証用の外部 IDP を有効にした後、必要に応じて基本認証を無効にできます。
あります。Basic を無効にした場合
すべてのスクリプト(Maven、シェル、apigeetool
など)を
Basic 認証をサポートする Edge Management API 呼び出しは機能しなくなりました。そのため、Basic 認証を使用して Bearer
ヘッダーで OAuth2 アクセス トークンを渡す API 呼び出しとスクリプトをすべて更新する必要があります。
get_token を使用してトークンを取得および更新する
get_token
ユーティリティは、OAuth2 アクセス トークンおよび更新トークンの Basic 認証情報(および場合によってはパスコード)を交換します。get_token
ユーティリティは、
有効なアクセス トークンを返します。トークンを更新できる場合、ユーティリティは
それを返します。更新トークンの有効期限が切れると、ユーザー認証情報の入力を求められます。
get_token
ユーティリティはトークンをディスクに格納し、必要なときにすぐに使用できます。これは、
また、有効なアクセス トークンを stdout
に出力します。そこから、次のようなブラウザ拡張機能を使用できます。
Postman を使用するか、curl
で使用するために環境変数に埋め込みます。
OAuth2 アクセス トークンを取得して Edge Management API 呼び出しを行うには:
sso-cli
バンドルをダウンロードします。curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
ここで、EDGE_SSO_IP_DNS は、ホストしているマシンの IP アドレスまたは DNS 名です。 Apigee SSO モジュール。Apigee SSO で TLS を構成した場合は、
https
と正しい TLS ポート番号。- 次の例のように、
ssocli-bundle.zip
バンドルを解凍します。unzip ssocli-bundle.zip
- 次の例のように、
get_token
を/usr/local/bin
にインストールします。./install -b PATH
-b
オプションは別の場所を指定します。 - 次のように、
SSO_LOGIN_URL
環境変数をログイン URL に設定します。 フォーム:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
ここで、EDGE_SSO_IP_DNS は Apigee SSO モジュールをホストしているマシンの IP アドレスです。Apigee SSO で TLS を構成した場合は、
https
と正しい TLS ポート番号を使用します。 - (SAML のみ)ブラウザで、次の URL に移動して 1 回限りの
パスコード:
http://EDGE_SSO_IP_DNS:9099/passcode
Apigee SSO で TLS を構成した場合は、
https
と正しい TLS ポートを使用します。 あります。このリクエストはワンタイム パスコードを返します。このパスコードは、ユーザーが URL を 新しいパスコードを取得するか、
get_token
でパスコードを使用して できます。パスコードを使用できるのは、SAML IDP で認証する場合のみです。次は使用できません: LDAP IDP で認証するためのパスコード。
- 次の例のように、
get_token
を呼び出して OAuth2 アクセス トークンを取得します。get_token -u EMAIL_ADDRESS
ここで、EMAIL_ADDRESS は Edge ユーザーのメールアドレスです。
(SAML のみ)メールに加えて、コマンドラインでパスコードを入力します。 指定します。
get_token -u EMAIL_ADDRESS -p PASSCODE
get_token
ユーティリティは OAuth2 アクセス トークンを取得し、トークンに出力します。 更新トークンを~/.sso-cli
に書き込みます。 - アクセス トークンを
Bearer
ヘッダーとして Edge Management API 呼び出しに渡します。 次の例をご覧ください。curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP:8080/v1/organizations/ORG_NAME
- 新しいアクセス トークンを初めて取得したら、そのアクセス トークンを取得し、
次の例のように、1 つのコマンドで API 呼び出しに渡します。
header=`get_token` && curl -H "Authorization: Bearer $header" https://MS_IP:8080/v1/o/ORG_NAME
この形式のコマンドを使用すると、アクセス トークンが期限切れになると、 更新トークンの有効期限が切れるまでデータが保持されます。
(SAML のみ)更新トークンの有効期限が切れると、get_token
から新しいパスコードの入力を求められます。マイページ
パスコードを生成するには、上記の手順 3 で示した URL に移動して新しいパスコードを生成する必要があります。
新しい OAuth アクセス トークンを作成します。
Management API を使用して取得と更新を行う トークン
OAuth2 を使用する Apigee Edge Management API を使用してセキュリティを保護するでは、 トークンを取得および更新する Edge Management API。Edge API 呼び出しを使用して、トークンや SAML アサーションによって生成されます。
API 呼び出しの違いは、 OAuth2 の使用 Apigee Edge Management API を使用したセキュリティがありますが、呼び出しの URL は ゾーン名を指定します。また、SAML IDP を使用して初期アクセス トークンを生成するには、 パスコードを入力します。
認可のため、予約済みの OAuth2 クライアント認証情報を Authorization
に渡します。
できます。この呼び出しによってアクセス トークンと更新トークンが画面に出力されます。
アクセス トークンを取得する
(LDAP)次の API 呼び出しを使用して初期アクセスを生成し、更新します。 トークン:
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 \ http://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'
(SAML)次の API 呼び出しを使用して初期アクセスを生成し、更新します。 トークン:
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://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&response_type=token&passcode=PASSCODE'
SAML IDP を使用した認証には一時的なパスコードが必要ですが、LDAP IDP の認証には不要です。
アクセス トークンを更新する
後でアクセス トークンを更新するには、更新トークンを含む次の呼び出しを使用します。
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://EDGE_SSO_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'