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

支援的國家/地區:

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

本頁說明如何設定員工身分聯盟,以使用第三方身分識別提供者。

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

Google Security Operations 必須使用 Google 的員工身分聯盟,做為下列項目的 SSO 中介服務:

  • 客戶須符合 FedRAMP 高影響等級 (或更高) 規範。
  • 客戶在 Google Security Operations 中存取由 Google Cloud啟用的任何企業級控制項,包括使用 Identity and Access Management (IAM) 進行資料和功能角色型存取權控管 (RBAC)。
  • 客戶使用自助式憑證管理功能,以程式輔助方式存取 Chronicle API。

Google Security Operations 支援服務供應商啟動 (SP 啟動) 的 SAML 單一登入服務。有了這項功能,使用者就能直接前往 Google Security Operations。Google Security Operations 會透過 Google Cloud Identity and Access Management (IAM) 員工身分聯盟向第三方身分識別提供者 (IdP) 提出要求。

IdP 驗證使用者身分後,使用者會連回 Google Security Operations,並附上驗證聲明。 Google Cloud 員工身分聯合驗證會在驗證流程中擔任中介角色。

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

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

大致來說,通訊方式如下:

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

Google Security Operations 管理員會在身分識別供應商中建立群組,設定 SAML 應用程式,在聲明中傳遞群組成員資格資訊,然後將使用者和群組與 Google Security Operations IAM 中的預先定義角色或他們建立的自訂角色建立關聯。

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

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

事前準備

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

規劃實作方式

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

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

在這個程序中,您將設定 Google Cloud 員工身分聯盟,做為驗證流程中的中介服務。如要達成這個目標,請建立下列 Google Cloud 資源:

  • 工作團隊集區: 工作團隊身分集區可讓您授予工作團隊 (例如員工) Google Security Operations 的存取權。
  • 工作團隊提供者: 工作團隊提供者是工作團隊身分集區的子資源。儲存單一 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):選擇可指出所代表 IdP 的值。這個值必須符合下列規定:
    • 只能使用小寫字元 [a-z]、數字 [0-9] 和破折號 [-]。
    • 長度介於 4 到 32 個字元之間。
  • 工作團隊提供者顯示名稱 (WORKFORCE_PROVIDER_DISPLAY_NAME):定義工作團隊提供者的易記名稱。長度不得超過 32 個字元。
  • 工作團隊提供者說明 (WORKFORCE_PROVIDER_DESCRIPTION):詳細定義工作團隊提供者。

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

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

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

  • 設定 SAML 應用程式時,請建立規劃期間定義的群組。您會設定 IdP SAML 應用程式,在聲明中傳遞群組成員資格。

  • 建立工作團隊供應商時,請將聲明屬性和群組對應至Google Cloud 屬性。這項資訊會以聲明聲明形式傳送,做為使用者身分的一部分。

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

    Google Security Operations 提供多個預先定義的角色,每個角色都能存取特定功能。您可以將 IdP SAML 應用程式中定義的群組對應至這些預先定義的角色。

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

設定 IdP

本節僅說明 IdP SAML 應用程式中整合 Google Cloud 員工身分同盟和 Google Security Operations 時所需的特定設定。

  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 應用程式中建立群組屬性。您在規劃 IdP 實作時已定義這些項目。

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

設定員工身分聯盟

本節僅說明設定員工身分聯盟的特定步驟,您必須使用上一節建立的 IdP SAML 應用程式。如要進一步瞭解如何管理員工身分集區,請參閱「管理員工身分集區提供者」一文。

  1. 以在 Google Security Operations 繫結專案中具備必要權限的使用者身分,開啟 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 Security Operations 繫結專案 ID。 Google Cloud 如要瞭解可識別專案的欄位說明,請參閱「建立與管理專案」。

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

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

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

您可以設定工作團隊身分集區,與外部識別資訊提供者 (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:方便使用者辨識的 Workforce 供應商名稱。長度不得超過 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.groups 屬性。google.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 Security Operations。使用您先前建立的 Google Security Operations 繫結 Google Cloud 專案進行設定。

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

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

      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 檢視者角色授予特定群組,請執行下列指令:

      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. 設定其他 IAM 政策,以符合貴機構的需求。

  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:方便使用者辨識的 Workforce 供應商名稱。值不得超過 32 個字元。
  • WORKFORCE_PROVIDER_DESCRIPTION:勞動力供應商的說明。
  • PATH_TO_METADATA_XML:更新後應用程式中繼資料 XML 檔案的位置,例如:/path/to/sso_metadata_updated.xml
  • ATTRIBUTE_MAPPINGS:對應的聲明屬性至 Google Cloud attributes。例如:

    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 網路記錄檔

找不到指令

建立工作團隊身分集區提供者並指定 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 專業人員尋求答案。