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

Private Cloud 適用的 Edge 4.17.09 版

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

  • 建立機構和環境
  • 新增及移除 Edge 元件
  • 執行 apigee-adminapi.sh 指令
  • 許多其他工作

不過,在邊緣啟用 SAML 後,通常會停用基本驗證,以便透過 SAML IDP 進行驗證。因此,請務必將系統管理員帳戶新增至 SAML IDP。

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

許多 Edge API 呼叫都需要您傳遞系統管理員憑證。在 Edge 管理 API 中使用 SAML 說明如何在發出 Edge 管理 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 會指定邊緣單一登入 (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 會指定密碼
  • 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 管理 API」。
  • oauh_token 包含符記。

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

許多 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 會指定密碼
  • 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,這取決於您原先取得權杖的方式。在本範例中,您會指定 passcode,因為您最初是使用 get_token 取得權杖。請參閱「使用 SAML 搭配 Edge 管理 API」。
  • OAUTH_BEARER_TOKEN 包含權杖。