本節說明啟用 Apigee SSO 後,如何執行 Edge 系統管理工具和指令。在 Edge 上執行許多工作時,都需要系統管理憑證,例如:
- 建立組織和環境
- 新增及移除 Edge 元件
- 執行
apigee-adminapi.sh指令
不過,在 Edge 上啟用 SSO 後,您通常會停用基本驗證,這樣驗證的唯一方式就是透過 OIDC/SAML IDP。因此,請務必將系統管理員帳戶新增至 IDP,或為自動化作業建立本機機器使用者。
以系統管理員身分呼叫 Edge Management API
許多 Edge API 呼叫都需要您傳遞系統管理員憑證。搭配使用 SAML 與 Edge Management API 包含在發出 Edge Management API 呼叫時,如何使用 get_token 公用程式取得及更新權杖的操作說明。
搭配使用 apigee-adminapi.sh 公用程式與 Apigee SSO
使用 apigee-adminapi.sh 公用程式執行相同的 Edge 設定工作,方法是呼叫 Edge Management API。apigee-adminapi.sh 公用程式的優點如下:
- 使用簡單的指令列介面
- 實作以 Tab 鍵為基礎的指令完成功能
- 提供說明和使用資訊
- 如果您決定試用 API,可以顯示對應的 API 呼叫
啟用 Apigee SSO 後,您可以透過兩種主要方式將憑證傳遞至 apigee-adminapi.sh 公用程式,具體取決於您是管理員還是自動化指令碼。
如要查看任何 apigee-adminapi.sh 指令的所有選項 (包括指定 SSO 憑證的選項),請使用指令的 -h 選項。例如:
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 的網址。如果您已將通訊埠和通訊協定從 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 的網址。OAUTH_FLOW指定password_grant。OAUTH_ADMIN_PASSWORD指定機器使用者的密碼。