使用 Microsoft Entra ID 設定 GCP Workforce Identity Federation,並讓使用者登入

修改時間 星期二, 25 十一月 於 1:58 PM

本文件分成四份章節:

  1. 建立 Microsoft Entra ID 應用程式 (SAML)
  2. 建立 GCP Workforce Identity Pools
  3. 建立 Microsoft Entra ID Workforce Identity Pool Provider
  4. 管理 Google Cloud 資源存取權


建立 Microsoft Entra ID 應用程式 (SAML)

  1. 登入 Microsoft Entra 系統管理入口網站。
  2. 在左側導覽選單中,依序前往「Entra ID」>「Enterprise Apps」。
  3. 如要開始設定企業應用程式,請按照下列步驟操作:
    1. 依序點選「新應用程式」>「建立自己的應用程式」。
    2. 在顯示的「Create your own application」(建立自己的應用程式) 窗格中,輸入應用程式名稱。
    3. 點選「建立」。
    4. 依序前往「單一登入」>「SAML」。
    5. 按照下列步驟更新「Basic SAML Configuration」(基本 SAML 設定):

      1. 在「Identifier (Entity ID)」(ID (實體 ID)) 欄位中,輸入下列值:

        https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID


        更改下列內容:
        WORKFORCE_POOL_ID:工作團隊身分集區 ID,您稍後會在本文中建立工作團隊身分集區時使用,例如:entra-id-saml-pool
        WORKFORCE_PROVIDER_ID:工作團隊身分集區提供者 ID,您稍後在本文件中建立工作團隊身分集區提供者時會用到,例如:entra-id-saml-pool-provider

      2. 在「Reply URL (Assertion Consumer Service URL)」欄位中,輸入重新導向網址。使用者成功登入後,系統會將他們重新導向至這個網址。如要設定控制台 (聯盟) 的存取權,請使用下列網址格式:

        https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID


        更改下列內容
        WORKFORCE_POOL_ID:員工身分集區 ID
        WORKFORCE_PROVIDER_ID:工作團隊身分識別提供者 ID

      3. 如要啟用 IdP 啟動的登入程序,請將「Relay State」欄位設為下列值:

        https://console.cloud.google/


      4. 如要儲存 SAML 應用程式設定,請按一下「儲存」。

    6. 如要使用本文稍後提供的屬性對應範例,請務必建立自訂 department 屬性。


建議:根據安全性最佳做法,建議您設定群組聲明,方法如下:

  1. 前往 Microsoft Entra ID 應用程式。
  2. 點選 [Single sign-on] (單一登入)。
  3. 在「屬性與聲明」部分,按一下「編輯」。
  4. 按一下「新增群組聲明」。
  5. 選取要退貨的群組類型。詳情請參閱「使用 SSO 設定,將群組聲明新增至 SAML 應用程式的權杖」。


建立 GCP Workforce Identity Pools

  1. 前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面:
    前往「Workforce Identity Pools」(員工身分集區) 頁面
  2. 選取員工身分集區的機構。機構中的所有專案和資料夾都可使用 Workforce 身分集區。
  3. 按一下「建立集區」,然後執行下列操作:
    1. 在「名稱」欄位中,輸入集區的顯示名稱。系統會在您輸入名稱時自動衍生集區 ID,並顯示在「名稱」欄位下方。如要更新集區 ID,請點選集區 ID 旁的「編輯」。
    2. 選用:在「說明」中輸入集區說明。
    3. 如要建立員工身分集區,請按「Next」(下一步)。


工作團隊身分集區的工作階段持續時間預設為一小時 (3600 秒)。 工作階段時間長度決定了這個工作團隊集區的 Google Cloud 存取權杖、控制台 (聯盟) 和 gcloud CLI 登入工作階段的有效時間。建立集區後,您可以更新集區,設定自訂工作階段時間長度。工作階段持續時間必須介於 15 分鐘 (900 秒) 至 12 小時 (43,200 秒) 之間。


建立 Microsoft Entra ID Workforce Identity Pool Provider

  1. 前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面:
    前往「Workforce Identity Pools」(員工身分集區) 頁面
  2. 在「Workforce Identity Pools」(工作團隊身分集區) 表格中,選取要建立提供者的集區。
  3. 在「供應商」表格中,按一下「新增供應商」。
  4. 在「選取通訊協定」中,選取「SAML」。
  5. 在「建立集區提供者」中,執行下列操作:
    1. 在「名稱」部分,輸入供應商名稱。
    2. 選用:在「說明」中輸入供應商說明。
    3. 在「IdP 中繼資料檔案 (XML)」中,選取您在本指南稍早產生的中繼資料 XML 檔案。
    4. 確認已啟用「Enabled provider」(已啟用供應商)。
    5. 按一下「繼續」。
  6. 在「設定供應商」中,執行下列操作:
    1. 在「屬性對應」中,輸入 google.subject 的 CEL 運算式。
    2. 選用:如要輸入其他對應,請按一下「新增對應」,然後輸入其他對應,例如
      google.subject=assertion.subject,
      google.groups=assertion.attributes['https://example.com/aliases'],
      attribute.costcenter=assertion.attributes.costcenter[0]


      這個範例會將 IdP 屬性 assertion.subject、assertion.attributes['https://example.com/aliases'] 和 assertion.attributes.costcenter[0] 分別對應至 Google Cloud屬性 google.subject、google.groups 和 google.costcenter。


    3. 選用:如要新增屬性條件,請按一下「新增條件」,然後輸入代表屬性條件的 CEL 運算式。 舉例來說,如要將 ipaddr 屬性限制在特定 IP 範圍內,可以設定 assertion.attributes.ipaddr.startsWith('98.11.12.') 條件。這個範例條件可確保只有 IP 位址開頭為 98.11.12. 的使用者,才能使用這個員工身分提供者登入。

      警告:如果多租戶 IdP 只有一個發行者 URI,您必須使用屬性條件 ,確保只有正確的租戶可以存取。詳情請參閱「與 GitHub 或其他多租戶身分識別提供者進行同盟時使用屬性條件」。
    4. 按一下「繼續」。
    5. 如要開啟詳細稽核記錄,請在「詳細記錄」中,點按「啟用詳細屬性值記錄」切換鈕。

      員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Cloud Logging。詳細稽核記錄有助於排解工作團隊身分識別集區提供者設定問題。如要瞭解如何透過詳細的稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價

      如要停用工作團隊身分集區提供者的詳細稽核記錄功能,請在執行 gcloud iam workforce-pools providers create 時省略 --detailed-audit-logging 旗標。如要停用詳細稽核記錄,您也可以更新供應商。
  7. 如要建立提供者,請按一下「提交」。


管理 Google Cloud 資源存取權

在本範例中,您會授予範例專案的 Identity and Access Management (IAM) 角色。使用者即可登入並使用這個專案存取 Google Cloud 產品。

您可以管理單一身分、身分群組或整個集區的身分與存取權管理角色。

  1. 單一身分

    principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE


    更改下列內容
    WORKFORCE_POOL_ID:員工身分集區 ID
    SUBJECT_VALUE:使用者身分

  2. 使用對應群組

    principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID

    更改下列內容
    WORKFORCE_POOL_ID:員工身分集區 ID
    GROUP_ID:對應的 google.groups 聲明中的群組。


這篇文章是否有幫助?

太棒了!

感謝您提供意見回饋

抱歉,沒能幫到您

感謝您提供意見回饋

請讓我們知道如何改善這篇文章!

請選擇至少一個原因
必須進行 CAPTCHA 驗證。

意見已發送

感謝您的寶貴意見,我們將嘗試修改這篇文章