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

私有雲 v4.18.01 的邊緣

本節說明如何在啟用 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 公用程式。

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

> 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 會指定 Edge 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 指定 Edge 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/密碼取得的密碼。

最後您可以使用符記

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

其中:

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