設定第三方識別資訊提供者

支援以下發布途徑:

您可以使用 Cloud Identity、Google Workspace 或第三方身分識別資訊提供者 (例如 Okta 或 Azure AD) 管理使用者、群組和驗證作業。

本頁面說明如何設定 Workforce Identity Federation,以便使用第三方識別資訊提供者。

Google 的 Workforce Identity Federation 可讓您授予地端部署或多雲端工作負載對 Google Cloud資源的存取權,不必使用服務帳戶金鑰。您可以將 Workforce Identity Federation 與任何支援 OpenID Connect (OIDC)SAML 2.0 的 IdP 搭配使用,例如 Microsoft Entra ID、Active Directory Federation Services (AD FS)、Okta 等。

Google 安全作業團隊要求使用 Google 員工身分聯盟做為 SSO 仲介服務,用於以下情況:

  • 符合 FedRAMP 高等風險 (或更高) 法規要求的客戶。
  • 客戶存取 Google Cloud啟用的 Google Security Operations 中的任何企業級控管功能,包括使用 Identity and Access Management (IAM) 的角色式存取權控管 (RBAC) 資料和功能。
  • 客戶使用自助式憑證管理功能,透過程式輔助的方式存取 Chronicle API。

Google 安全作業團隊支援為使用者提供由服務供應商 (SP) 啟動的 SAML 單一登入 (SSO) 服務。有了這項功能,使用者就能直接前往 Google 安全作業中心。Google 安全作業團隊會透過 Google Cloud Identity and Access Management (IAM) 員工身分聯盟向第三方身分資訊提供者 (IdP) 發出要求。

IdP 驗證使用者身分後,系統會將使用者傳回至 Google 安全作業,並附上驗證斷言。 Google Cloud workforce identity federation 會在驗證流程中擔任中介角色。

Google Security Operations、 Google Cloud IAM 員工身分聯盟和 IdP 之間的通訊

Google 安全作業、IAM 員工身分聯盟和 IdP 之間的通訊

通訊的運作方式大致如下:

  1. 使用者前往 Google Security Operations。
  2. Google Security Operations 會在 Google Cloud workforce identity pool 中查詢 IdP 資訊。
  3. 系統會將要求傳送給 ID 提供者。
  4. SAML 斷言會傳送至 Google Cloud Workforce Identity 集區。
  5. 如果驗證成功,Google Security Operations 只會收到您在工作團隊身分集區中設定工作團隊提供者時定義的 SAML 屬性。

Google 安全作業管理員會在其身分識別提供者中建立群組,並設定 SAML 應用程式,以便在斷言中傳遞群組成員資格資訊,然後將使用者和群組連結至 Google 安全作業在 IAM 中預先定義的角色,或連結至他們建立的自訂角色。

不支援由 IdP 啟動的登入作業 (從 IdP 資訊主頁啟動登入作業)。如果貴機構需要這項功能,請與 Google Security Operations 代表聯絡,要求提供這項功能。

本文將概略說明如何透過第三方身分識別資訊提供者 (IdP) 設定驗證機制,並使用 Google Cloud 員工身分聯盟。完成本文中的步驟後,您就能使用第三方 IdP 存取 Google Security Operations,並透過 SAML 單一登入 (SSO) 和員工身分聯盟管理 Google Security Operations 的存取權。

事前準備

下列步驟說明如何使用 gcloud 指令執行設定。如果步驟可在 Google Cloud 控制台中執行,系統會提供相關 IAM 說明文件的連結。

規劃實施計畫

以下章節將說明您必須做出的決定,以及在執行本文件中的步驟前定義的資訊。

定義工作團隊身分集區和工作團隊提供者

在這個程序中,您將設定 Google Cloud workforce identity 聯盟,做為驗證流程中的中介。如要達成這項目標,您需要建立下列 Google Cloud 資源:

  • 員工集區:員工身分集區可讓您授予員工 (例如員工) 存取 Google 安全作業的權限。
  • 工作團隊提供者:工作團隊提供者是工作團隊身分集區的子資源。儲存單一 IdP 的詳細資料。

工作團隊身分集區、工作團隊供應商和 Google Security Operations 執行個體之間的關係,由單一客戶子網域識別,如下所示:

  • 工作團隊身分集區是在機構層級定義。
  • 每個 Google Security Operations 執行個體都會設定並連結工作團隊身分集區。
  • 工作團隊身分集區可以有多個工作團隊提供者。
  • 每個工作團隊供應商都會將第三方 IdP 與工作團隊身分集區整合。

  • 您透過這些步驟建立的工作團隊身分池必須專供 Google SecOps 使用。雖然您可以管理多個工作團隊身分識別資訊集區以供其他用途,但為 Google SecOps 建立的工作團隊身分識別資訊集區無法共用。

  • 建議您在包含與 Google SecOps 綁定的專案的 Google Cloud機構中建立工作團隊身分集區。

預先定義工作團隊身分集區和工作團隊供應商的相關資訊,有助於節省時間。設定 IdP SAML 應用程式和工作團隊身分聯盟時,您會使用這項資訊。

選擇下列 ID 的值:

  • 工作團隊集區 ID (WORKFORCE_POOL_ID):選取表示工作團隊身分集區範圍或用途的值。這個值必須符合下列規定:
    • 全域不重複。
    • 只能使用小寫字元 [a-z]、數字 [0-9] 和破折號 [-]。
    • 開頭必須為小寫字元 [a-z]。
    • 結尾必須是小寫字元 [a-z] 或數字 [0-9]。
    • 長度介於 4 到 61 個半形字元之間。
  • 工作團隊集區顯示名稱 (WORKFORCE_POOL_DISPLAY_NAME):為工作團隊身分集區定義使用者友善的名稱。
  • 工作團隊集區說明 (WORKFORCE_POOL_DESCRIPTION):定義工作團隊身分集區的詳細說明。
  • 工作團隊供應商 ID (WORKFORCE_PROVIDER_ID):選擇代表該 ID 的值。這個值必須符合下列規定:
    • 只能使用小寫字元 [a-z]、數字 [0-9] 和破折號 [-]。
    • 長度介於 4 到 32 個半形字元。
  • 人力資源供應商顯示名稱 (WORKFORCE_PROVIDER_DISPLAY_NAME):為人力資源供應商定義易於使用者理解的名稱。長度不得超過 32 個半形字元。
  • 人力資源供應商說明 (WORKFORCE_PROVIDER_DESCRIPTION):定義人力資源供應商的詳細說明。

在 IdP 中定義使用者屬性和群組

在 IdP 中建立 SAML 應用程式前,請先找出需要設定 Google Security Operations 功能存取權的使用者屬性和群組。詳情請參閱「使用 IAM 設定功能存取權控管」和「IAM 中的 Google 安全作業權限」。

您需要在以下程序階段提供這項資訊:

  • 設定 SAML 應用程式時,您會建立規劃階段定義的群組。您可以設定 IdP SAML 應用程式,在斷言中傳遞群組會員資格。

  • 建立工作團隊供應器時,您會將斷言屬性和群組對應至 Google Cloud 屬性。這項資訊會在斷言宣告中傳送,做為使用者身分的一部分。

  • 在 Google Security Operations 中設定角色式存取權控管時,您可以使用使用者屬性和群組資訊,設定 Google Security Operations 功能的存取權。

    Google 安全作業團隊提供多個預先定義角色,每個角色都允許存取特定功能。您可以將 IdP SAML 應用程式中定義的群組對應至這些預先定義的角色。

  • 為設定 SOAR 相關功能存取權的管理員建立 IdP 群組。在新手上路程序中指定這個群組名稱,授權群組成員設定使用者和群組存取權,以便存取 Google SecOps 中的 SOAR 相關功能。

設定 IdP

本節僅說明 IdP SAML 應用程式需要的特定設定,以便整合 Google Cloud 工作人員身分同盟和 Google 安全作業。

  1. 在 IdP 中建立新的 SAML 應用程式。

  2. 請使用下列宣告消費者服務 (ACS) 網址設定應用程式,視服務供應商而定,這也稱為單一登入網址。

    https://auth.backstory.chronicle.security/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    更改下列內容:

    • WORKFORCE_POOL_ID:您為工作團隊身分集區定義的 ID。
    • WORKFORCE_PROVIDER_ID:您為人力資源供應商定義的 ID。

      如需值的說明,請參閱「規劃導入作業」。

  3. 使用下列實體 ID (也稱為 SP 實體 ID) 設定應用程式。

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

    更改下列內容:

    • WORKFORCE_POOL_ID:您為工作團隊身分集區定義的 ID。
    • WORKFORCE_PROVIDER_ID:您為人力資源供應商定義的 ID。
  4. 在 IdP 中設定名稱 ID,確保 SAML 回應會傳回 NameID 欄位。

    您可以將這個值設為支援貴機構政策的值,例如電子郵件地址或使用者名稱。如要瞭解如何設定這個值,請參閱 IdP 說明文件。如要進一步瞭解這項規定,請參閱「排解員工身分聯盟問題」。

  5. 您也可以在 SAML 應用程式中建立群組屬性。您在規劃 ID 提供者導入作業時已定義這些值。

  6. 下載應用程式中繼資料 XML 檔案。在下一節中,您將使用 Cloud Shell,將此檔案從本機系統上傳至 Google Cloud 主目錄。

設定員工身分聯盟

本節僅說明如何設定人力資源身分同盟,以及您在前一個部分建立的 IdP SAML 應用程式。如要進一步瞭解如何管理工作團隊身分集區,請參閱「管理工作團隊身分集區提供者

  1. 以具備 Google 安全操作服務綁定專案所需權限的使用者身分開啟 Google Cloud 主控台。您先前已識別或建立這個使用者。請參閱「事前準備」一節。

  2. 啟動 Cloud Shell 工作階段

  3. 設定 Google Cloud 使用 gcloud CLI 執行的作業所產生帳單和收取配額的專案。以以下 gcloud 指令為例:

    gcloud config set billing/quota_project PROJECT_ID
    

    PROJECT_ID 替換為您在設定 Google Security Operations 專案 Google Cloud 中建立的 Google Security Operations 專案 ID。如要瞭解用於識別專案的欄位,請參閱「建立及管理專案」。

    如要瞭解配額,請參閱下列文件:

    如果發生錯誤,請參閱配額錯誤

建立及設定工作團隊身分集區

您可以設定工作團隊身分池,以便與外部識別資訊提供者 (IdP) 或 Google Workspace 或 Cloud Identity 整合。

  1. 建立工作團隊身分集區。

    • 為第三方 IdP 建立工作團隊身分集區:

      以以下 gcloud 指令為例:

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
        --location="global" \
        --organization="ORGANIZATION_ID" \
        --description="WORKFORCE_POOL_DESCRIPTION" \
        --display-name="WORKFORCE_POOL_DISPLAY_NAME"
      

      更改下列內容:

      • WORKFORCE_POOL_ID:您為工作團隊身分集區定義的 ID。
      • ORGANIZATION_ID:數字機構 ID。
      • WORKFORCE_POOL_DESCRIPTION:指定工作團隊身分集區的說明。
      • WORKFORCE_POOL_DISPLAY_NAME:為工作團隊身分集區指定簡單易懂的名稱。

      如要使用 Google Cloud 控制台執行這項設定,請參閱「建立集區」一文。

      如果您想使用 Google Workspace 或 Cloud Identity 登入 Google SecOps,請新增下列標記:

      --allowed-services domain=backstory.chronicle.security

      --disable-programmatic-signin 指令:

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
            --location="global" \
            --organization="ORGANIZATION_ID" \
            --description="WORKFORCE_POOL_DESCRIPTION" \
            --display-name="WORKFORCE_POOL_DISPLAY_NAME" \
            --allowed-services domain=backstory.chronicle.security \
            --disable-programmatic-signin
      

      這個指令會建立不支援登入 Google Cloud的工作團隊身分集區。如要啟用登入功能,您必須為每個情境使用適當的標記。

  2. 如果指令列提示您啟用 Chronicle API,請輸入 Yes

建立工作團隊身分集區提供者

員工身分集區提供者是一個實體,會說明您的 Google Cloud 機構和 IdP 之間的關係。

  1. 按一下 「More」>,將 SAML 應用程式中繼資料檔案上傳至 Cloud Shell 主目錄。檔案只能上傳至主目錄。如要瞭解在 Cloud Shell 和本機工作站之間轉移檔案的其他選項,請參閱「從 Cloud Shell 上傳及下載檔案和資料夾」。

  2. 請記下您在 Cloud Shell 中上傳 SAML 應用程式中繼資料 XML 檔案的目錄路徑。下一個步驟會用到這個路徑。

  3. 建立工作團隊身分集區提供者,並指定 IdP 詳細資料。

    以以下 gcloud 指令為例:

    gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
      --workforce-pool="WORKFORCE_POOL_ID" \
      --location="global" \
      --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
      --description="WORKFORCE_PROVIDER_DESCRIPTION" \
      --idp-metadata-path=PATH_TO_METADATA_XML \
      --attribute-mapping="ATTRIBUTE_MAPPINGS"
    

    如需值的說明,請參閱「規劃導入作業」。

    更改下列內容:

    • WORKFORCE_PROVIDER_ID:您為人力資源提供者 ID 定義的值。
    • WORKFORCE_POOL_ID:您為工作團隊身分集區 ID 定義的值。
    • WORKFORCE_PROVIDER_DISPLAY_NAME:人力資源供應商的簡單易懂名稱。長度不得超過 32 個半形字元。
    • WORKFORCE_PROVIDER_DESCRIPTION:人力資源供應商的說明。
    • PATH_TO_METADATA_XML:您使用 Cloud Shell 上傳的應用程式中繼資料 XML 檔案的 Cloud Shell 目錄位置,例如:/path/to/sso_metadata.xml
    • ATTRIBUTE_MAPPINGS:定義如何將斷言屬性對應至 Google Cloud 屬性一般運算語言可用於解讀這些對應關係。例如:

      google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.groups

      上述範例會對應下列屬性:

      • assertion.subject 變更為 google.subject。這是最低要求。
      • assertion.attributes.name[0]遷移至「google.display_name」時發生錯誤。
      • assertion.attributes.groupsgoogle.groups 屬性。

      如果您要為 Google Security Operations 執行這項設定 (包括 Google Security Operations SIEM 和 Google SecOps SOAR),則必須對應 Google SecOps SOAR 所需的下列屬性:

      • attribute.first_name
      • attribute.last_name
      • attribute.user_email
      • google.groups

      如需詳細資訊,請參閱「為 Google SecOps SOAR 佈建及對應使用者」。

      根據預設,Google Security Operations 會從下列大小寫不敏感的斷言屬性名稱讀取群組資訊:_assertion.attributes.groups__assertion.attributes.idpGroup__assertion.attributes.memberOf_

      設定 SAML 應用程式在斷言中傳遞群組成員資訊時,請將群組屬性名稱設為 _group__idpGroup__memberOf_

      在範例指令中,您可以將 assertion.attributes.groups 替換為 assertion.attributes.idpGroupassertion.attributes.memberOf,代表您在 IdP SAML 應用程式中設定的群組屬性名稱,且在斷言中包含群組成員資格資訊。

      以下範例會將多個群組對應至 google.groups 屬性:

      google.groups="(has(assertion.attributes.idpGroup) ? assertion.attributes.idpGroup : []) + (has(assertion.attributes.groups) ? assertion.attributes.groups : []) + (has(assertion.attributes.memberof) ? assertion.attributes.memberof : [])"

      以下範例會將含有特殊字元的群組 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group 對應至 google.groups

      google.groups="assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group']"

      如要進一步瞭解如何對應屬性,請參閱「屬性對應」。

      如要使用 Google Cloud 控制台執行這項設定,請參閱「建立 SAML 提供者」一文。

指派角色,啟用 Google Security Operations 登入功能

以下步驟說明如何使用 IAM 授予特定角色,讓使用者能夠登入 Google 安全作業。使用先前建立的 Google Security Operations 繫結 Google Cloud 專案執行設定。

  1. Chronicle API Viewer (roles/chronicle.viewer) 角色授予應具備 Google Security Operations 應用程式存取權的使用者或群組。

    • 以下範例會將 Chronicle API Viewer 角色授予使用您先前建立的工作團隊身分集區和工作團隊提供者所管理的身分。

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --role roles/chronicle.viewer \
        --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/*"
      

      更改下列內容:

    • 如要將 Chronicle API Viewer 角色授予特定群組,請執行下列指令:

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --role roles/chronicle.viewer \
        --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
      

      替換 GROUP_ID:對應的 google.groups 權利要求中的群組。

  2. 設定其他身分與存取權管理政策,以符合貴機構的需求。

  3. 必要條件:如要完成驗證,並讓使用者存取 Google SecOps 平台,您必須從 Google SecOps 的 SOAR 端設定使用者存取權。詳情請參閱「在 Google SecOps 平台中對使用者進行分類」。

驗證或設定 Google Security Operations 功能存取權控管

如果您已設定員工身分聯盟,並將屬性或群組對應至 google.groups 屬性,系統會將這項資訊傳遞至 Google Security Operations,讓您為 Google Security Operations 功能設定角色式存取控管 (RBAC)。

如果 Google Security Operations 執行個體已有 RBAC 設定,請確認原始設定是否正常運作。

如果您尚未設定存取權控管,請參閱「使用 IAM 設定功能存取權控管」一文,瞭解如何控管功能存取權。

修改員工身分聯盟設定

如需更新工作團隊身分集區或工作團隊提供者,請參閱「管理工作團隊身分集區提供者」一文,瞭解如何更新設定。

建立 SAML 人力資源池供應器」中的「金鑰管理」一節說明如何更新 IdP 簽署金鑰,然後使用最新的應用程式中繼資料 XML 檔案更新人力資源池供應器設定。

以下是用於更新人力資源供應商設定的 gcloud 指令範例:

  gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location="global" \
    --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
    --description="WORKFORCE_PROVIDER_DESCRIPTION" \
    --idp-metadata-path=PATH_TO_METADATA_XML \
    --attribute-mapping="ATTRIBUTE_MAPPINGS"

更改下列內容:

  • WORKFORCE_PROVIDER_ID:您為人力資源提供者 ID 定義的值。
  • WORKFORCE_POOL_ID:您為工作團隊身分集區 ID 定義的值。
  • WORKFORCE_PROVIDER_DISPLAY_NAME:人力資源供應商的簡單易懂名稱。值的長度不得超過 32 個半形字元。
  • WORKFORCE_PROVIDER_DESCRIPTION:人力資源供應商的說明。
  • PATH_TO_METADATA_XML:更新的應用程式中繼資料 XML 檔案位置,例如:/path/to/sso_metadata_updated.xml
  • ATTRIBUTE_MAPPINGS:對應的斷言屬性至 Google Cloud 屬性。例如:

    google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.memberOf

為確保 Google SecOps RBAC 持續正常運作,請將 google.groups 屬性對應至用於在 Google SecOps 中定義角色的所有群組。

排解設定相關問題

如果在這個程序中遇到錯誤,請參閱「排解人力資源身分聯結問題」,解決常見問題。以下部分將說明執行本文步驟時遇到的常見問題。

如果仍遇到問題,請與 Google SecOps 代表聯絡,並提供 Chrome 網路記錄檔案

找不到指令

建立工作團隊 ID 池提供者並指定 IdP 詳細資料時,會收到以下錯誤:

Error: bash: --attribute-mapping=google.subject=assertion.subject,
google.display_name=assertion.attributes.name[0],
google.groups=assertion.attributes.groups: command not found

請確認 PATH_TO_METADATA_XML 是您上傳 SAML 應用程式中繼資料 XML 檔案至 Cloud Shell 主目錄的位置。

呼叫者沒有權限

執行 gcloud projects add-iam-policy-binding 指令為使用者或群組授予角色時,會收到以下錯誤訊息:

ERROR: (gcloud.organizations.add-iam-policy-binding) User [ ] does not have
permission to access organizations instance [538073083963:getIamPolicy]
(or it may not exist): The caller does not have permission

請確認您具備必要權限。詳情請參閱「必要角色」。

後續步驟

完成本文中的步驟後,請執行下列操作:

還有其他問題嗎?向社群成員和 Google SecOps 專家尋求解答。