Edge for Private Cloud バージョン 4.17.09
Edge API で SAML を使用する場合、SAML アサーションから OAuth2 アクセス トークンと更新トークンを取得するために使用するプロセスをパスコード フローと呼びます。パスコード フローでは、ブラウザを使用してワンタイム パスコードを取得し、そのパスコードを使用して OAuth2 トークンを取得します。
ただし、開発環境では、テストの自動化や継続的インテグレーション/継続的デプロイ(CI/CD)などの一般的な開発タスクの自動化をサポートしている場合があります。SAML が有効な場合にこれらのタスクを自動化するには、ブラウザからパスコードをコピーして貼り付けることなく、OAuth2 トークンを取得して更新できる方法が必要です。
Edge は、マシンユーザーを使用したトークンの自動生成をサポートしています。マシンユーザーは、パスコードを指定しなくても OAuth2 トークンを取得できます。つまり、Edge Management API を使用すると、OAuth2 トークンの取得と更新のプロセスを完全に自動化できます。
マシンユーザーを作成する
apigee-ssoadminapi.sh ユーティリティを使用して、SAML 組織のマシンユーザーを作成します。詳細については、apigee-ssoadminapi.sh の使用をご覧ください。すべての組織が使用するマシンユーザーを 1 つだけ作成することも、組織ごとに個別のマシンユーザーを作成することもできます。
マシンユーザーが作成され、SAML ID プロバイダではなく Edge データストアに保存されます。したがって、Edge UI と Edge Management API を使用してマシンユーザーを維持する責任はありません。
マシンユーザーを作成するときに、メールアドレスとパスワードを指定する必要があります。マシンユーザーを作成したら、それを 1 つ以上の組織に割り当てます。
マシンユーザーを作成するには:
- 次の apigee-ssoadminapi.sh コマンドを使用して、マシンユーザーを作成します。
> apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME --secret SSO_ADMIN_SECRET --host edge_sso_IP_or_DNS -u machine_user_emailmachine_user_email -p- SSO_ADMIN_NAME は、Edge SSO モジュールの構成に使用する構成ファイル内の SSO_ADMIN_NAME プロパティで定義された管理者ユーザー名です。デフォルトは ssoadmin です。
- SSO_ADMIN_SECRET は、構成ファイルの SSO_ADMIN_SECRET プロパティで指定された管理者パスワードです。
この例では、apigee-sso モジュールが --port にデフォルト値の 9099、--ssl に http を使用するため、--port と --ssl の値を省略できます。インストールでこれらのデフォルト値が使用されていない場合は、必要に応じて指定します。
- Edge UI にログインし、マシンユーザーのメールアドレスを組織に追加し、マシンユーザーに必要なロールを割り当てます。詳細については、グローバル ユーザーの追加をご覧ください。
マシンのユーザー トークンの取得と更新
Edge API を使用して、マシンユーザーの認証情報をパスコードの代わりに渡して OAuth2 トークンを取得、更新します。
マシンユーザーの OAuth2 トークンを取得するには:
- 次の API 呼び出しを使用して、最初のアクセス トークンと更新トークンを生成します。
> curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" /
-H "accept: application/json;charset=utf-8" /
-H "Authorization: Basic ZWRnZWNsaxplZ2
edge_sso_IP_DNSこの呼び出しにより、アクセス トークンと更新トークンが画面に出力されます。後で使用するためにトークンを保存します。 - アクセス トークンを Bearer ヘッダーとして Edge Management API 呼び出しに渡します。
> curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName
ここで、orgName はマシンユーザーを含む組織の名前です。 - 後でアクセス トークンを更新するには、更新トークンを含む次の呼び出しを使用します。
> curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" /
-H "Accept: application/json;charset=utf-token" /
-H "Authorization: Basic ZWRnZWNsa
edge_sso_IP_DNS
Edge Management API を使用してマシンユーザーを作成する
apigee-ssoadminapi.sh ユーティリティを使用する代わりに、Edge Management API を使用してマシンユーザーを作成できます。マシンユーザーを作成するには:
- 次の cURL コマンドを使用して、ssoadmin ユーザー(apigee-sso の管理者アカウントのユーザー名)のトークンを取得します。
> curl
"http://edge_sso_IP_DNS:9099/oauth/token" -i -X POST /
-H 'Accept: application/json' / -H 'Content-Type
このコマンドは、次の呼び出しに必要なトークンを表示します。 - 次の cURL コマンドを使用して、マシンユーザーを作成します。
" " " " " " " " " - 前のステップで受け取ったトークンを渡して、マシンユーザーを作成します。
> curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST /
-H "Accept: application/json" -H "Content-Type: application/json" /
" -d - Edge UI にログインし、マシンユーザーのメールアドレスを組織に追加し、マシンユーザーに必要なロールを割り当てます。詳細については、グローバル ユーザーの追加をご覧ください。