將 SAML 與自動化工作搭配使用

私有雲的邊緣 4.17.09 版

將 SAML 與 Edge API 搭配使用時,您透過 SAML 宣告取得 OAuth2 存取權及更新權杖的程序稱為密碼流程。透過密碼流程,您可以透過瀏覽器取得動態密碼,然後用於取得 OAuth2 權杖。

不過,您的開發環境可能支援自動執行一般開發工作,例如測試自動化或持續整合/持續部署 (CI/CD)。如要在啟用 SAML 的情況下自動執行這些工作,您需要能取得及更新 OAuth2 權杖的方法,而不必從瀏覽器複製/貼上密碼。

Edge 支援透過機器使用者自動產生權杖。機器使用者不必指定密碼即可取得 OAuth2 權杖。這表示您可以使用 Edge Management API 完全自動化取得及更新 OAuth2 權杖的程序。

建立機器使用者

使用 apigee-ssoadminapi.sh 公用程式,為 SAML 機構建立機器使用者。詳情請參閱使用 apigee-ssoadminapi.sh。您可以建立可供所有機構使用的一台機器使用者,也可以為每個機構建立個別的機器使用者。

機器使用者是在 Edge Datastore 中建立並儲存在 Edge 資料儲存庫,而非您的 SAML 識別資訊提供者。因此,您無須透過 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_machine_or_DNS -u machine_user_email -u machine_user_email

    • SSO_ADMIN_NAME 是管理員使用者名稱,由用於設定 Edge SSO 模組的設定檔中的 SSO_ADMIN_NAME 屬性定義。預設值為 ssoadmin
    • SSO_ADMIN_SECRET 是設定檔中 SSO_ADMIN_SECRET 屬性指定的管理員密碼。

      在這個示例中,您可以省略 --port--ssl 的值,因為 apigee-sso 模組在 --port--ssl 使用預設值 9099。如果您安裝時不使用這些預設值,請視需要指定。
  2. 登入 Edge UI 並將機器使用者的電子郵件地址新增至貴機構,然後將機器使用者指派為必要的角色。詳情請參閱「新增全域使用者」。

取得並重新整理機器使用者權杖

透過 Edge API 傳遞機器使用者的憑證 (而非密碼),藉此取得及更新 OAuth2 權杖。

如何為電腦使用者取得 OAuth2 權杖:

  1. 使用下列 API 呼叫產生初始存取和重新整理權杖:
    > curl -H "Content-Type: application/x-www-form-urlcoded;charset=utf-8" /
    -H "accept: application/json;charset=utf-8" /
    -H "Authorization: Basic ZWRnZWNsaTV



    edge_sso_IP_DNS
    呼叫會在畫面中列印存取權和重新整理權杖。儲存權杖供日後使用。
  2. 將存取權杖以 Bearer 標頭的形式傳送至 Edge Management API 呼叫:
    > curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName

    其中 orgName 是包含機器的機構名稱。
  3. 之後如要重新整理存取權杖,請使用以下包含重新整理權杖的呼叫:
    > curl -H "Content-Type:application/x-www-form-url 儲存在





    edge_sso_IP_DNS

使用 Edge Management API 建立機器使用者

您可以使用 Edge Management API 建立機器使用者,而不使用 apigee-ssoadminapi.sh 公用程式。如要建立機器使用者,請按照下列指示操作:

  1. 使用以下 cURL 指令取得 ssoadmin 使用者的權杖,apigee-sso 的管理員帳戶使用者名稱 (edge_sso_IP_DNS

    這個指令會顯示下一個呼叫所需的權杖。
  2. 使用以下 cURL 指令建立機器使用者,並傳遞您在上一個步驟中收到的符記:
    "edge_sso_IP_DNS:9099/Users" -i -X POST /
    "-H "Accept: application/json" -H "Content-Type: application/json" /
    "


  3. 登入 Edge UI 並將機器使用者的電子郵件地址新增至貴機構,然後將機器使用者指派為必要的角色。詳情請參閱「新增全域使用者」。