啟用 SAML 後使用 Edge 管理員公用程式和 API

本節說明如何在啟用 SAML 後執行 Edge 系統管理工具和指令。 許多 Edge 工作都需要系統管理憑證,例如:

  • 建立機構和環境
  • 新增及移除 Edge 元件
  • Runngin apigee-adminapi.sh 指令

不過,在 Edge on Edge 啟用 SAML 後,通常會停用基本驗證,這樣系統就只會透過 SAML IDP 進行驗證。因此,請務必確認您已經將系統管理員帳戶新增至 SAML IDP。

以系統管理員的身分呼叫 Edge Management API

許多 Edge API 呼叫都需要您傳遞系統管理員憑證。搭配 Edge Management API 使用 SAML 一文說明如何在執行 Edge Management API 呼叫時取得及更新權杖。

使用 apigee-adminapi.sh 公用程式搭配 SAML 驗證

使用 apigee-adminapi.sh 公用程式,即可執行您在呼叫 Edge Management API 後執行的相同 Edge 設定工作。apigee-adminapi.sh 公用程式的優點如下:

  • 使用簡單的指令列介面
  • 實作以 Tab 鍵為基礎的指令
  • 提供說明和使用資訊
  • 如果您決定試用 API,可以顯示對應的 API 呼叫

詳情請參閱使用 apigee-ssoadminapi.sh

啟用 SAML 驗證後,您可以透過多種方式將系統管理員憑證傳遞至 apigee-adminapi.sh 公用程式。

您可以看到任何 apigee-adminapi.sh 指令的所有選項,包括指定 SAML 憑證的選項,只要使用指令的「-h」選項即可。例如:

apigee-adminapi.sh orgs list -h

舉例來說,您可以傳遞系統管理員憑證:

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

在此情況下:

  • sso-url 選項會指定 Apigee SSO 模組的網址。如果您已在 9099 和 HTTP 中變更通訊埠或通訊協定,請修改通訊埠或通訊協定。
  • oauth-flow 可指定 passcodepassword_grant。在這個範例中,指定 password_grant
  • adminEmail 是系統管理員的電子郵件地址。
  • oauth-password 用於指定系統管理員管理員的密碼。

您也可以在呼叫指令時使用密碼:

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

在此情況下:

  • oauth-flow 指定 passcode
  • oauth-passcode 會指定從 http://edge_sso_IP_DNS:9099/passcode. 取得的密碼

最後,您可以在呼叫指令時使用權杖:

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

在此情況下:

  • oauth-flow 會根據您原先取得權杖的方式,指定 passcodepassword_grant。在此範例中,您之所以指定 passcode,是因為您原本是使用 get_token 取得權杖。請參閱「將 SAML 與 Edge Management API 搭配使用」。
  • oauh_token 包含權杖。

搭配 SAML 驗證使用 Edge 公用程式

許多 Edge 公用程式都需要系統管理員憑證,例如:

  • apigee-provision 用於建立機構、環境和虛擬主機
  • setup.sh 用於將節點新增至現有系統
  • 您必須在設定檔中指定系統管理員憑證的任何其他公用程式

這些公用程式會將設定檔當做輸入設定檔,透過屬性指定系統管理員的憑證:

ADMIN_EMAIL="adminEmail"
APIGEE_ADMINPW=adminPWord

如果您省略密碼,系統會提示您輸入密碼。

啟用 SAML 後,您可以透過不同屬性指定系統管理員的憑證。舉例來說,您可以傳遞系統管理員憑證:

ADMIN_EMAIL="adminEmail"
SSO_LOGIN_URL=http://edge_sso_IP_DNS:9099
OAUTH_FLOW=password_grant
OAUTH_ADMIN_PASSWORD=adminPWord

在此情況下:

  • SSO_LOGIN_URL 會指定 Apigee 單一登入 (SSO) 模組的網址。如果您已在 9099 和 HTTP 中變更通訊埠或通訊協定,請修改通訊埠或通訊協定。
  • OAUTH_FLOW 可指定 passcodepassword_grant。在這個範例中,由於您要傳遞的是系統管理員管理員密碼,因此請指定 password_grant
  • OAUTH_ADMIN_PASSWORD 用於指定系統管理員管理員的密碼。

或者,您也可以使用下列屬性在密碼流程中指定憑證:

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

在此情況下:

  • OAUTH_FLOW 指定 passcode
  • OAUTH_ADMIN_PASSCODE 會指定從 http://edge_sso_IP_DNS:9099/passcode. 取得的密碼

最後您可以使用符記

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

在此情況下:

  • OAUTH_FLOW 會根據您原先取得權杖的方式,指定 passcodepassword_grant。在本範例中,因為您原本是使用 get_token 取得權杖,所以指定了 passcode。請參閱「將 SAML 與 Edge Management API 搭配使用」。
  • OAUTH_BEARER_TOKEN 包含權杖。