Apigee SSO 有効化後の Edge 管理ユーティリティと API の使用

このセクションでは、Apigee SSO を有効にした後に Edge システム管理ツールとコマンドを実行する方法について説明します。Edge の多くのタスクでは、次のようなシステム管理者の認証情報が必要です。

  • 組織と環境の作成
  • Edge コンポーネントの追加と削除
  • apigee-adminapi.sh コマンドの実行

ただし、Edge で SSO を有効にした後は、通常、基本認証を無効にして、OIDC/SAML IDP を介してのみ認証できるようにします。そのため、システム管理者アカウントを IDP に追加するか、自動化用のローカル マシンユーザーを作成する必要があります。

システム管理者として Edge Management API を呼び出す

多くの Edge API 呼び出しでは、システム管理者の認証情報を渡す必要があります。Edge Management API での SAML の使用には、Edge Management API 呼び出しを行う際に get_token ユーティリティを使用してトークンを取得および更新トークンを更新する方法が記載されています。

Apigee SSO での apigee-adminapi.sh ユーティリティの使用

apigee-adminapi.sh ユーティリティを使用して、Edge Management API を呼び出すことで実行する Edge 構成タスクと同じタスクを実行します。apigee-adminapi.sh ユーティリティの利点は次のとおりです。

  • シンプルなコマンドライン インターフェースを使用する
  • タブベースのコマンド補完を実装します。
  • ヘルプと使用状況に関する情報を提供します
  • API を試すことを選択した場合、対応する API 呼び出しを表示できる

Apigee SSO を有効にすると、管理者(人間)か自動スクリプトかによって、apigee-adminapi.sh ユーティリティに認証情報を渡す 2 つの主な方法があります。

-h オプションをコマンドに使用すると、SSO 認証情報を指定するオプションなど、apigee-adminapi.sh コマンドのすべてのオプションを表示できます。次に例を示します。

apigee-adminapi.sh orgs list -h

署名なしトークンを渡す(人間の管理者向け)

モダナイズされた Apigee SSO は、以前の /passcode コピー&ペースト フローをサポートしていないため、人間の管理者は get_token ユーティリティを使用して OAuth 2.0 デバイスコード フローを完了し、結果のトークンをスクリプトに渡す必要があります。

まず、トークンを取得します。

/opt/apigee/apigee-openldap/bin/get_token -u adminEmail

コマンドを呼び出すときに、このトークンを使用します。

apigee-adminapi.sh orgs list --sso-url http://edge_sso_IP_DNS:9099 --oauth-flow passcode \
  --admin adminEmail --oauth-token token_string

ここで

  • oauth-flow には passcode を指定します(これにより、トークンが提供されていることが以前のスクリプトに通知されます)。
  • oauth-token には、get_token から取得した未加工の JWT 文字列が含まれます。

パスワードを渡す(マシンユーザーのみ)

インフラストラクチャのデプロイを自動化する場合は、password_grant フローを使用して認証情報を直接渡すことができます。ただし、SAML/OIDC 連携が有効になっている場合、MFA のバイパスを防ぐために、人間のシャドー ユーザーはパスワード ログインがブロックされます。まず、OpenLDAP で明示的なマシンユーザーをプロビジョニングする必要があります。

apigee-adminapi.sh orgs list --sso-url http://edge_sso_IP_DNS:9099 --oauth-flow password_grant \
  --admin machineUserEmail --oauth-password machineUserPassword

ここで

  • sso-url オプションは、Apigee SSO の URL を指定します。9099 と HTTP から変更した場合は、ポートまたはプロトコルを変更します。
  • oauth-flow は password_grant を指定します。
  • machineUserEmail は、自動化されたマシンユーザーのメールアドレスです。
  • oauth-password は、マシンユーザーのパスワードを指定します。

Apigee SSO で Edge ユーティリティを使用する

多くの Edge ユーティリティでは、次のようなシステム管理者の認証情報が必要です。

  • 組織、環境、仮想ホストの作成に使用される apigee-provision
  • 既存のシステムにノードを追加するために使用される setup.sh
  • 構成ファイルでシステム管理者の認証情報を指定する必要があるその他のユーティリティ

これらのユーティリティは、システム管理者の認証情報を指定する構成ファイルを入力として使用します。SSO を有効にする前に、次のプロパティを使用してこれを行います。

ADMIN_EMAIL="adminEmail"
APIGEE_ADMINPW="adminPWord"

Apigee SSO を有効にした後は、別のプロパティを使用してシステム管理者の認証情報を指定する必要があります。

署名なしトークンを使用する(管理者向け)

人間の管理者によるインタラクティブなデプロイの場合は、get_token ユーティリティを使用してトークンを取得し、OAUTH_BEARER_TOKEN プロパティを介して指定します。

ADMIN_EMAIL="adminEmail"
SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
OAUTH_FLOW="passcode"
OAUTH_BEARER_TOKEN="token_string"

ここで

  • OAUTH_FLOW には passcode を指定します(トークンが提供されていることを示します)。
  • OAUTH_BEARER_TOKEN には、get_token から取得した未加工の JWT 文字列が含まれます。

パスワードを使用する(マシンユーザーのみ)

完全に自動化されたデプロイの場合は、password_grant フローを使用して、明示的にプロビジョニングされたマシンユーザーの認証情報を指定します。

ADMIN_EMAIL="machineUserEmail"
SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
OAUTH_FLOW="password_grant"
OAUTH_ADMIN_PASSWORD="machineUserPassword"

ここで

  • SSO_LOGIN_URL には Apigee SSO の URL を指定します。
  • OAUTH_FLOW は password_grant を指定します。
  • OAUTH_ADMIN_PASSWORD は、マシンユーザーのパスワードを指定します。