基本認証は、Edge Management API を呼び出す際の認証方法の 1 つです。
たとえば、次の curl リクエストを Edge Management API に送信して、
組織に関する情報にアクセスできます。
curl -u USER_NAME:PASSWORD http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
この例では、curl -u オプションを使用して基本認証
情報を渡します。または、次の例に示すように、Authorization: Bearer ヘッダーに OIDC/OAuth2 トークンを渡して
Edge Management API 呼び出しを行うこともできます。
curl -H "Authorization: Bearer ACCESS_TOKEN" http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
認証に外部 IDP を有効にした後、必要に応じて基本
認証を無効にできます。基本認証を無効にすると、基本認証をサポートする Edge Management API 呼び出しに依存するすべてのスクリプト(Maven、シェル、apigeetool など)が
機能しなくなります。基本認証を使用する API 呼び出しとスクリプトは、
Bearer ヘッダーで OAuth2 アクセス トークンを渡すように更新する必要があります。
get_token でトークンを取得して更新トークンを更新する
get_token ユーティリティは、標準の OAuth 2.0 デバイスコードフローを使用して、OIDC/OAuth2 アクセス トークンと更新トークンを取得します。このユーティリティは、ブラウザで URL にアクセスして外部 IDP(またはローカル LDAP)経由で認証するように求め、その後、ターミナルのブロックを自動的に解除して有効なアクセス トークンを出力します。
get_token ユーティリティは、トークンを ~/.sso-cli/ のディスクに安全にキャッシュし、必要に応じて使用できるようにします。また、有効なアクセス トークンを stdout に出力します。既存のトークンを更新できる場合、ユーティリティは自動的に更新します。更新トークンの有効期限が切れると、新しいブラウザベースの認可フローが開始されます。
Edge Management API 呼び出しを行うための OAuth2 アクセス トークンを取得するには:
get_tokenユーティリティとacurlユーティリティは、Apigee SSO(OpenLDAP ノード)をホストするノードの/opt/apigee/apigee-openldap/bin/- (省略可)
SSO_LOGIN_URL環境変数を SSO 発行者の URL に設定します。形式は次のとおりです。export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
ここで、EDGE_SSO_IP_DNS は、Apigee SSO をホストするマシンの IP アドレスまたは DNS 名です。Apigee SSO で TLS を構成した場合は、
httpsと正しい TLS ポート番号を使用します。 - メールアドレスを指定して
get_tokenを呼び出し、OAuth 2.0 デバイスコードフローを開始します。/opt/apigee/apigee-openldap/bin/get_token -u EMAIL_ADDRESS
ここで、EMAIL_ADDRESS は Edge ユーザーのメールアドレスです。
- ユーティリティが一時停止し、URL と 8 文字のデバイスコードがターミナルに出力されます。
Please visit: http://EDGE_SSO_IP_DNS:9099/device And enter code: ABCD-EFGH
- ブラウザで指定された URL を開き、デバイスコードを入力して [送信] をクリックします。外部 IDP(またはローカル LDAP フォーム)にリダイレクトされ、認証してリクエストを承認します。
- ブラウザで認証が完了したら、ターミナルに戻ります。
get_tokenユーティリティは承認を自動的に検出し、OAuth2 アクセス トークンを取得して画面に出力し、安全にキャッシュします。 - キャッシュされたトークンを自動的に読み取り、Bearer ヘッダーを挿入する
acurlユーティリティを使用して、アクセス トークンを Edge Management API 呼び出しに渡します。/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
または、標準の
curlを使用してトークンを手動で渡すこともできます。curl -H "Authorization: Bearer ACCESS_TOKEN" \ http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
Management API を使用してトークンを取得して更新する
従来の /passcode エンドポイントは削除されました。したがって、人間のユーザーは、前述のように get_token ユーティリティを使用して、最初の認証のためにブラウザベースの OAuth 2.0 デバイスコードフローを開始する必要があります。
ブラウザとやり取りできないスクリプトまたは CI/CD パイプラインを作成する場合は、マシンユーザーでタスクを自動化するをご覧ください。有効な認証情報を持つ自動化されたマシンユーザーまたはアプリケーションは、標準の API 呼び出しを使用してトークンを取得して更新できます。