如要將 Microsoft Entra ID 中的群組對應至 Google Cloud,且群組數量少於 150 個,請參閱「使用 Microsoft Entra ID 設定員工身分聯盟,並讓使用者登入」。
基本概念
本節說明設定員工身分聯盟時會用到的概念,稍後會在本文件中說明。
額外屬性
如要對應最多 400 個群組,請在建立員工身分集區提供者時指定 extra-attributes 旗標,使用額外屬性。您可以使用下列通訊協定的額外屬性:
- 採用隱含流程的 OIDC
- 使用代碼流程的 OIDC
- SAML 2.0 通訊協定
Microsoft Entra ID 應用程式可在權杖中發出的群組電子郵件地址數量有限,SAML 為 150 個,JWT 則為 200 個。如要進一步瞭解這項限制,請參閱「使用 Microsoft Entra ID 為應用程式設定群組聲明」。如要擷取更多群組,員工身分聯盟會使用 Microsoft Identity 的 OAuth 2.0 用戶端憑證流程取得憑證,讓員工身分聯盟查詢 Microsoft Graph API 並擷取使用者的群組。
如要使用額外屬性,整體來說,您需要執行以下操作:
建立新的 Microsoft Entra ID 應用程式,或更新現有應用程式,從 Microsoft Graph API 取得使用者群組成員資格。如要進一步瞭解 Microsoft Graph 如何從 Microsoft Entra ID 擷取大量群組,請參閱「群組超額」一文。
建立工作團隊身分集區提供者時,您可以使用
extra-attributes旗標設定員工身分聯盟,從 Microsoft Graph API 擷取使用者的群組電子郵件地址或顯示名稱。
員工身分聯盟最多可從 Microsoft Graph API 擷取 999 個群組。如果 Microsoft Graph API 傳回超過 999 個群組,登入就會失敗。
如要減少 Microsoft Graph API 傳回的群組數量,您可以在建立工作團隊身分集區提供者時,使用 --extra-attributes-filter 標記來調整員工身分聯盟的查詢。
員工身分聯盟從 Microsoft Graph API 擷取群組後,會產生存取權杖。員工身分聯盟最多可將 400 個群組新增至存取權杖,因此如要進一步將群組數量篩選至 400 個以下,您可以在建立工作團隊身分集區提供者時,指定包含一般運算語言 (CEL) 運算式的屬性對應。
事前準備
- 確認您已 Google Cloud 設定機構。
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
- 在 Microsoft Entra ID 中,請確認已為隱含流程啟用 ID 權杖。詳情請參閱「啟用 ID 權杖隱含授權」。
- 如要登入,您的 IdP 必須提供已簽署的驗證資訊:OIDC IdP 必須提供 JWT,且 SAML IdP 回應必須經過簽署。
- 如要接收貴機構或產品異動的重要資訊,請務必提供重要聯絡人。詳情請參閱「員工身分聯盟總覽」。Google Cloud
- 您要對應的所有群組都必須在 Microsoft Entra ID 中標示為安全性群組。
費用
員工身分聯盟是免付費功能。不過,員工身分聯盟詳細稽核記錄會使用 Cloud Logging。如要瞭解 Logging 定價,請參閱「Google Cloud Observability 定價」。
必要的角色
如要取得設定員工身分聯盟所需的權限,請要求管理員授予您組織的 IAM 工作團隊集區管理員 (roles/iam.workforcePoolAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
如果您是在開發或測試環境 (而非正式環境) 中設定權限,可以授予 IAM 擁有者 (roles/owner) 基本角色,這個角色也包含 Workforce Identity Federation 的權限。
建立 Microsoft Entra ID 應用程式
本節說明如何使用 Microsoft Entra 管理入口網站建立 Microsoft Entra ID 應用程式。或者,您也可以更新現有的應用程式。詳情請參閱「在 Microsoft Entra ID 生態系統中建立應用程式」。
員工身分集區支援使用 OIDC 和 SAML 通訊協定的聯盟。
OIDC
如要建立使用 OIDC 通訊協定的 Microsoft Entra ID 應用程式註冊,請按照下列步驟操作:
登入 Microsoft Entra 系統管理中心。
前往 Microsoft Entra ID 應用程式註冊的「總覽」頁面。
依序前往「Entra ID」>「App registrations」。
如要開始設定應用程式註冊,請按照下列步驟操作:
按一下 [新增註冊]。
輸入應用程式名稱。
在「支援的帳戶類型」中選取選項。
在「Redirect URI」(重新導向 URI) 部分,從「Select a platform」(選取平台) 下拉式清單中選取「Web」(網頁)。
在文字欄位中輸入重新導向網址。使用者成功登入後,系統會將他們重新導向這個網址。如要設定控制台 (聯盟) 的存取權,請使用下列網址格式:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID更改下列內容:
WORKFORCE_POOL_ID:員工身分集區 ID,您稍後在本文件中建立員工身分集區時會用到,例如:entra-id-oidc-poolWORKFORCE_PROVIDER_ID:員工身分集區提供者 ID,您稍後會在本文中建立員工身分集區提供者時使用,例如:entra-id-oidc-pool-provider如要瞭解如何設定 ID 格式,請參閱 API 說明文件中的「查詢參數」一節。
如要建立應用程式註冊,請按一下「Register」(註冊)。
如要使用本文稍後提供的屬性對應範例,請務必建立自訂
department屬性。
SAML
如要建立使用 SAML 通訊協定的 Microsoft Entra ID 應用程式註冊,請按照下列步驟操作:
登入 Microsoft Entra 系統管理入口網站。
在左側導覽選單中,依序前往「Entra ID」>「Enterprise Apps」。
如要開始設定企業應用程式,請按照下列步驟操作:
依序點選「新應用程式」>「建立自己的應用程式」。
在顯示的「Create your own application」(建立自己的應用程式) 窗格中,輸入應用程式名稱。
點選「建立」。
依序前往「單一登入」>「SAML」。
按照下列步驟更新「Basic SAML Configuration」(基本 SAML 設定):
在「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-poolWORKFORCE_PROVIDER_ID:您稍後在本文件中建立員工身分集區提供者時,會使用的員工身分集區提供者 ID,例如:entra-id-saml-pool-provider如要瞭解如何設定 ID 格式,請參閱 API 說明文件中的「查詢參數」一節。
在「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:員工身分集區 IDWORKFORCE_PROVIDER_ID:員工識別資訊提供者 ID
如要啟用 IdP 啟動的登入程序,請將「Relay State」欄位設為下列值:
https://console.cloud.google/如要儲存 SAML 應用程式設定,請按一下「儲存」。
如要使用本文稍後提供的屬性對應範例,請務必建立自訂
department屬性。
使用 Microsoft Entra ID 設定大量群組
本節說明如何使用 OIDC 和 SAML 通訊協定,將 Microsoft Entra ID 中的最多 400 個群組對應至員工身分聯盟。
使用 OIDC 隱含流程,透過 Microsoft Entra ID 設定大量群組
本節說明如何使用 OpenID Connect (OIDC) 通訊協定和隱含流程,將 Microsoft Entra ID 中的最多 400 個群組對應至員工身分聯盟。
設定 Microsoft Entra ID 應用程式
您可以設定現有的 Microsoft Entra ID 應用程式,或建立新的應用程式。如要設定應用程式,請按照下列步驟操作:
-
在 Microsoft Entra ID 入口網站中,完成下列步驟:
- 如要註冊新應用程式,請按照「註冊新應用程式」一文中的說明操作。
-
如要更新現有應用程式,請按照下列步驟操作:
- 前往 Microsoft Entra ID 應用程式註冊的「總覽」頁面。
依序前往「Entra ID」>「App registrations」。
- 選取要更新的應用程式。
-
按照「憑證和密鑰」中的操作說明,在應用程式中建立新的用戶端密鑰。請務必記下用戶端密鑰值,因為系統只會顯示一次。
請記下您建立或更新的應用程式中的下列值。您會在本文稍後設定工作團隊身分集區提供者時提供這些值。
Client IDIssuer URIClient SecretTenant ID
-
如要擷取 Microsoft Entra ID 群組,請新增 API 權限,讓員工身分聯盟使用 Microsoft Graph API 從 Microsoft Entra ID 存取使用者資訊,並授予管理員同意聲明。 在 Microsoft Entra ID 中執行下列操作:
- 前往「API permissions」。
- 按一下「新增權限」。
- 選取「Microsoft API」。
- 選取「應用程式權限」。
- 在搜尋欄位中輸入
User.ReadBasic.All。 - 按一下「Add permissions」。
您可以透過群組物件 ID、啟用電子郵件功能的群組電子郵件地址,或群組顯示名稱,擷取 Microsoft Entra ID 群組。
如果您選擇以群組電子郵件地址或顯示名稱擷取群組,則必須執行下一個步驟。
- 如要以群組電子郵件地址或顯示名稱的形式擷取 Microsoft Entra ID 群組,請按照下列步驟操作。如要以群組物件 ID 的形式擷取群組,請略過這個步驟。
- 前往「API permissions」。
- 按一下「新增權限」。
- 選取「Microsoft API」。
- 選取「應用程式權限」。
- 在搜尋欄位中輸入
GroupMember.Read.All。 - 按一下「Add permissions」。
前往先前建立或更新的 Microsoft Entra ID 應用程式「總覽」頁面。按一下「端點」。 核發者 URI 是 OIDC 中繼資料文件 URI,省略路徑
/.well-known/openid-configuration。舉例來說,如果 OIDC 中繼資料文件是
https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration,核發者 URI 就是https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/。
建立工作團隊身分集區
gcloud
如要建立員工身分集區,請執行下列指令:
gcloud iam workforce-pools create WORKFORCE_POOL_ID \
--organization=ORGANIZATION_ID \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--session-duration=SESSION_DURATION \
--location=global
更改下列內容:
WORKFORCE_POOL_ID:您選擇用來代表工作團隊集區的 ID。集區 ID 在 Google Cloud 所有工作團隊身分集區中必須是全域唯一的。如要瞭解 ID 格式,請參閱 API 說明文件中的「查詢參數」一節。 Google CloudORGANIZATION_ID:員工身分集區的 Google Cloud 機構數字 ID。機構中的所有專案和資料夾都可使用員工身分集區。DISPLAY_NAME:選用。工作團隊身分集區的顯示名稱。DESCRIPTION:選用。工作團隊身分集區 說明。SESSION_DURATION:選用。工作階段持續時間,以附加s的數字表示,例如3600s。工作階段時間長度決定了從這個工作團隊集區取得的 Google Cloud 存取權杖、控制台 (聯盟) 登入工作階段,以及 gcloud CLI 登入工作階段的有效時間。工作階段持續時間預設為一小時 (3600 秒)。工作階段持續時間值必須介於 15 分鐘 (900 秒) 和 12 小時 (43200 秒) 之間。
控制台
如要建立工作團隊身分識別集區,請執行下列操作:
前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面:
選取工作團隊身分集區的機構。機構中的所有專案和資料夾都可以使用工作團隊身分集區。
按一下「建立集區」,然後執行下列操作:
在「名稱」欄位中,輸入集區的顯示名稱。系統會在您輸入名稱時自動衍生集區 ID,並顯示在「名稱」欄位下方。如要更新集區 ID,請點選集區 ID 旁的「編輯」。
選用:在「Description」(說明) 中輸入集區說明。
如要建立員工身分集區,請按「Next」(下一步)。
工作團隊身分集區的工作階段持續時間預設為一小時 (3600 秒)。 工作階段持續時間決定了 Google Cloud 存取權杖、控制台 (已加入聯盟) 和這個工作團隊集區的 gcloud CLI 登入工作階段的有效時間。建立集區後,您可以更新集區,設定自訂工作階段時間長度。工作階段持續時間必須介於 15 分鐘 (900 秒) 至 12 小時 (43,200 秒) 之間。
設定 OIDC 隱含流程工作團隊身分集區提供者
gcloud
如要建立 OIDC 工作團隊身分識別集區提供者,請執行下列指令:
gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global \
--display-name=DISPLAY_NAME \
--issuer-uri=ISSUER_URI \
--client-id=CLIENT_ID \
--attribute-mapping=ATTRIBUTE_MAPPING \
--web-sso-response-type=id-token \
--web-sso-assertion-claims-behavior=only-id-token-claims \
--extra-attributes-issuer-uri=EXTRA_ATTRIBUTES_ISSUER_URI \
--extra-attributes-client-id=EXTRA_ATTRIBUTES_CLIENT_ID \
--extra-attributes-client-secret-value=EXTRA_ATTRIBUTES_CLIENT_SECRET \
--extra-attributes-type=EXTRA_ATTRIBUTES_TYPE \
--extra-attributes-filter=EXTRA_ATTRIBUTES_FILTER \
--detailed-audit-logging
請替換下列項目:
-
PROVIDER_ID:專屬的供應商 ID。 前置字元gcp-為保留字元,不得用於集區或供應商 ID。 -
WORKFORCE_POOL_ID:工作團隊集區 ID。 -
DISPLAY_NAME:供應商的顯示名稱。 -
ISSUER_URI:您在本文件稍早建立的 Microsoft Entra ID 應用程式核發者 URI。 -
CLIENT_ID:Microsoft Entra ID 應用程式中的用戶端 ID。 -
ATTRIBUTE_MAPPING:從 Microsoft Entra ID 對應至 Google Cloud的屬性。 如果您使用--extra-attributes旗標從 Microsoft Entra ID 查詢群組,系統會忽略任何使用標準 SAML 或 OIDC 聲明的google.groups對應。舉例來說,如要對應 Microsoft Entra ID 的groups和subject屬性,請使用下列屬性對應:--attribute-mapping="google.groups=assertion.groups, google.subject=assertion.oid"
詳情請參閱「屬性對應」。
-
EXTRA_ATTRIBUTES_ISSUER_URI:Microsoft Entra ID 應用程式中的核發者 URI。 -
EXTRA_ATTRIBUTES_CLIENT_ID:Microsoft Entra ID 應用程式中的用戶端 ID。 -
EXTRA_ATTRIBUTES_CLIENT_SECRET:Microsoft Entra ID 應用程式中的額外用戶端密鑰。 -
EXTRA_ATTRIBUTES_TYPE:使用azure-ad-groups-mail擷取群組的電子郵件地址,使用azure-ad-groups-id擷取群組的 ID。使用azure-ad-groups-display-name擷取群組的顯示名稱。 -
EXTRA_ATTRIBUTES_FILTER:選用。透過 Microsoft Graph API 查詢群組時使用的篩選運算式。使用這項參數,即可確保從 IdP 擷取的群組數量低於上限 (400 個)。以下範例會擷取電子郵件 ID 前置字元為
sales的群組:--extra-attributes-filter='"mail:sales"'
下列運算式會擷取顯示名稱包含
sales字串的群組。--extra-attributes-filter='"displayName:sales"'
-
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄有助於排解員工身分集區提供者設定問題。如要瞭解如何使用詳細稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create時省略--detailed-audit-logging標記。如要停用詳細稽核記錄,您也可以更新提供者。
控制台
- 前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面:
- 在「Workforce Identity Pools」(工作團隊身分集區) 表格中,選取要建立提供者的集區。
- 在「供應商」部分中,按一下「新增供應商」。
- 在「Select a Provider vendor」(選取供應商) 清單中,選取您的身分識別提供者 (IdP)。
如果沒有列出您的 IdP,請選取「Generic Identity Provider」。
- 在「選取驗證通訊協定」中,選取「OpenID Connect (OIDC)」。
- 在「建立供應商」部分,執行下列操作:
- 在「名稱」中,輸入供應商名稱。
- 在「說明」中,輸入提供者的說明。
- 在「核發者 (網址)」中,輸入核發者 URI。
OIDC 核發者 URI 必須採用有效的 URI 格式,且開頭為
https,例如:https://example.com/oidc。 - 在「用戶端 ID」中,輸入向 OIDC IdP 註冊的 OIDC 用戶端 ID;這個 ID 必須與 IdP 發行的 JWT 的
aud聲明相符。 如要建立已啟用的供應器,請確認「啟用供應器」已開啟。
- 按一下「繼續」。
- 在「與 IdP 分享提供者資訊」部分,複製網址。在 IdP 中,將這個網址設為重新導向 URI,讓 IdP 瞭解登入後要將斷言權杖傳送至何處。
- 按一下「繼續」。
- 在「設定 OIDC 網頁登入功能」部分,完成下列步驟:
- 在「Flow type」(流程類型) 清單中,選取「ID Token」(ID 權杖)。
- 在「斷言聲明行為」清單中,選取「ID 權杖」。
- 按一下「繼續」。
- 在「設定供應商」中,您可以設定屬性對應和屬性條件。如要建立屬性對應,請按照下列步驟操作。您可以提供 IdP 欄位名稱,也可以提供傳回字串的 CEL 格式運算式。
- 必填:在「OIDC 1」中,輸入 IdP 的主體,例如
assertion.sub。 - 選用:如要新增其他屬性對應,請按照下列步驟操作:
- 按一下 [新增對應]。
- 在 Google n 中 (其中 n 是數字),輸入其中一個Google Cloud支援的鍵。
- 在對應的「OIDC n」欄位中,以 CEL 格式輸入要對應的 IdP 特定欄位名稱。
- 如要增加群組數量,請按照下列步驟操作:
- 選取「使用額外屬性」。
- 在「額外屬性核發者 URI」欄位中,輸入核發者網址。
- 在「Extra Attributes Client ID」(額外屬性用戶端 ID) 欄位中,輸入用戶端 ID。
- 在「Extra Attributes Client Secret」(額外屬性用戶端密鑰) 欄位中輸入用戶端密鑰。
- 在「額外屬性類型」清單中,選取額外屬性的屬性類型。
- 在「額外屬性篩選器」欄位中,輸入透過 Microsoft Graph API 查詢群組時使用的篩選運算式。
- 如要建立屬性條件,請按照下列步驟操作:
- 按一下「新增條件」。
- 在「屬性條件」欄位中,以 CEL 格式輸入條件,例如
assertion.role == 'gcp-users'。這個條件範例可確保只有具備gcp-users角色的使用者,才能使用這個供應商登入。 - 如要啟用詳細稽核記錄,請在「詳細記錄」中,點選「啟用屬性值稽核記錄」切換鈕。
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄有助於排解員工身分集區提供者設定問題。如要瞭解如何使用詳細稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create時省略--detailed-audit-logging標記。如要停用詳細稽核記錄,您也可以更新提供者。
- 必填:在「OIDC 1」中,輸入 IdP 的主體,例如
- 如要建立提供者,請按一下「Submit」(提交)。
前往「Workforce Identity Pools」(員工身分集區) 頁面
使用 OIDC 程式碼流程,在 Microsoft Entra ID 中設定大量群組
本節說明如何使用 OIDC 通訊協定和程式碼流程,將 Microsoft Entra ID 中的最多 400 個群組對應至員工身分聯盟。
設定 Microsoft Entra ID 應用程式
您可以設定現有的 Microsoft Entra ID 應用程式,或建立新的應用程式。如要設定應用程式,請按照下列步驟操作:
-
在 Microsoft Entra ID 入口網站中,完成下列步驟:
- 如要註冊新應用程式,請按照「註冊新應用程式」一文中的說明操作。
-
如要更新現有應用程式,請按照下列步驟操作:
- 前往 Microsoft Entra ID 應用程式註冊的「總覽」頁面。
依序前往「Entra ID」>「App registrations」。
- 選取要更新的應用程式。
-
按照「憑證和密鑰」中的操作說明,在應用程式中建立新的用戶端密鑰。請務必記下用戶端密鑰值,因為系統只會顯示一次。
請記下您建立或更新的應用程式中的下列值。您會在本文稍後設定工作團隊身分集區提供者時提供這些值。
Client IDIssuer URIClient SecretTenant ID
-
如要擷取 Microsoft Entra ID 群組,請新增 API 權限,讓員工身分聯盟使用 Microsoft Graph API 從 Microsoft Entra ID 存取使用者資訊,並授予管理員同意聲明。 在 Microsoft Entra ID 中執行下列操作:
- 前往「API permissions」。
- 按一下「新增權限」。
- 選取「Microsoft API」。
- 選取「委派的權限」。
- 在搜尋欄位中輸入
User.Read。 - 按一下「Add permissions」。
您可以透過群組物件 ID、啟用電子郵件功能的群組電子郵件地址,或群組顯示名稱,擷取 Microsoft Entra ID 群組。
如果您選擇以群組電子郵件地址或顯示名稱擷取群組,則必須執行下一個步驟。
- 如要以群組電子郵件地址或顯示名稱的形式擷取 Microsoft Entra ID 群組,請按照下列步驟操作。如要以群組物件 ID 的形式擷取群組,請略過這個步驟。
- 前往「API permissions」。
- 按一下「新增權限」。
- 選取「Microsoft API」。
- 選取「委派的權限」。
- 在搜尋欄位中輸入
GroupMember.Read.All。 - 按一下「Add permissions」。
前往先前建立或更新的 Microsoft Entra ID 應用程式「總覽」頁面。按一下「端點」。 核發者 URI 是 OIDC 中繼資料文件 URI,省略路徑
/.well-known/openid-configuration。舉例來說,如果 OIDC 中繼資料文件是
https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration,核發者 URI 就是https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/。
建立工作團隊身分集區
gcloud
如要建立員工身分集區,請執行下列指令:
gcloud iam workforce-pools create WORKFORCE_POOL_ID \
--organization=ORGANIZATION_ID \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--session-duration=SESSION_DURATION \
--location=global
更改下列內容:
WORKFORCE_POOL_ID:您選擇用來代表工作團隊集區的 ID。集區 ID 在 Google Cloud 所有工作團隊身分集區中必須是全域唯一的。如要瞭解 ID 格式,請參閱 API 說明文件中的「查詢參數」一節。 Google CloudORGANIZATION_ID:員工身分集區的 Google Cloud 機構數字 ID。機構中的所有專案和資料夾都可使用員工身分集區。DISPLAY_NAME:選用。工作團隊身分集區的顯示名稱。DESCRIPTION:選用。工作團隊身分集區 說明。SESSION_DURATION:選用。工作階段持續時間,以附加s的數字表示,例如3600s。工作階段時間長度決定了從這個工作團隊集區取得的 Google Cloud 存取權杖、控制台 (聯盟) 登入工作階段,以及 gcloud CLI 登入工作階段的有效時間。工作階段持續時間預設為一小時 (3600 秒)。工作階段持續時間值必須介於 15 分鐘 (900 秒) 和 12 小時 (43200 秒) 之間。
控制台
如要建立工作團隊身分識別集區,請執行下列操作:
前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面:
選取工作團隊身分集區的機構。機構中的所有專案和資料夾都可以使用工作團隊身分集區。
按一下「建立集區」,然後執行下列操作:
在「名稱」欄位中,輸入集區的顯示名稱。系統會在您輸入名稱時自動衍生集區 ID,並顯示在「名稱」欄位下方。如要更新集區 ID,請點選集區 ID 旁的「編輯」。
選用:在「Description」(說明) 中輸入集區說明。
如要建立員工身分集區,請按「Next」(下一步)。
工作團隊身分集區的工作階段持續時間預設為一小時 (3600 秒)。 工作階段持續時間決定了 Google Cloud 存取權杖、控制台 (已加入聯盟) 和這個工作團隊集區的 gcloud CLI 登入工作階段的有效時間。建立集區後,您可以更新集區,設定自訂工作階段時間長度。工作階段持續時間必須介於 15 分鐘 (900 秒) 至 12 小時 (43,200 秒) 之間。
設定 OIDC 程式碼流程工作團隊身分集區提供者
gcloud
如要建立 OIDC 工作團隊身分識別集區提供者,請執行下列指令:
gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global \
--display-name=DISPLAY_NAME \
--issuer-uri=ISSUER_URI \
--client-id=CLIENT_ID \
--client-secret-value="OIDC_CLIENT_SECRET" \
--attribute-mapping=ATTRIBUTE_MAPPING \
--web-sso-response-type=code \
--web-sso-assertion-claims-behavior=merge-user-info-over-id-token-claims \
--extra-attributes-issuer-uri=EXTRA_ATTRIBUTES_ISSUER_URI \
--extra-attributes-client-id=EXTRA_ATTRIBUTES_CLIENT_ID \
--extra-attributes-client-secret-value=EXTRA_ATTRIBUTES_CLIENT_SECRET \
--extra-attributes-type=EXTRA_ATTRIBUTES_TYPE \
--extra-attributes-filter=EXTRA_ATTRIBUTES_FILTER \
--detailed-audit-logging
請替換下列項目:
-
PROVIDER_ID:專屬的供應商 ID。 前置字元gcp-為保留字元,不得用於集區或供應商 ID。 -
WORKFORCE_POOL_ID:工作團隊集區 ID。 -
DISPLAY_NAME:供應商的顯示名稱。 -
ISSUER_URI:您在本文件稍早建立的 Microsoft Entra ID 應用程式核發者 URI。 -
CLIENT_ID:Microsoft Entra ID 應用程式中的用戶端 ID。 -
ATTRIBUTE_MAPPING:從 Microsoft Entra ID 對應至 Google Cloud的屬性。 如果您使用--extra-attributes旗標從 Microsoft Entra ID 查詢群組,系統會忽略任何使用標準 SAML 或 OIDC 聲明的google.groups對應。舉例來說,如要對應 Microsoft Entra ID 的groups和subject屬性,請使用下列屬性對應:--attribute-mapping="google.groups=assertion.groups, google.subject=assertion.oid"
詳情請參閱「屬性對應」。
-
EXTRA_ATTRIBUTES_ISSUER_URI:Microsoft Entra ID 應用程式中的核發者 URI。 -
EXTRA_ATTRIBUTES_CLIENT_ID:Microsoft Entra ID 應用程式中的用戶端 ID。 -
EXTRA_ATTRIBUTES_CLIENT_SECRET:Microsoft Entra ID 應用程式中的額外用戶端密鑰。 -
EXTRA_ATTRIBUTES_TYPE:使用azure-ad-groups-mail擷取群組的電子郵件地址,使用azure-ad-groups-id擷取群組的 ID。使用azure-ad-groups-display-name擷取群組的顯示名稱。 -
EXTRA_ATTRIBUTES_FILTER:選用。透過 Microsoft Graph API 查詢群組時使用的篩選運算式。使用這項參數,即可確保從 IdP 擷取的群組數量低於上限 (400 個)。以下範例會擷取電子郵件 ID 前置字元為
sales的群組:--extra-attributes-filter='"mail:sales"'
下列運算式會擷取顯示名稱包含
sales字串的群組。--extra-attributes-filter='"displayName:sales"'
-
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄有助於排解員工身分集區提供者設定問題。如要瞭解如何使用詳細稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create時省略--detailed-audit-logging標記。如要停用詳細稽核記錄,您也可以更新提供者。
控制台
- 前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面:
- 在「Workforce Identity Pools」(工作團隊身分集區) 表格中,選取要建立提供者的集區。
- 在「供應商」部分中,按一下「新增供應商」。
- 在「Select a Provider vendor」(選取供應商) 清單中,選取您的身分識別提供者 (IdP)。
如果沒有列出您的 IdP,請選取「Generic Identity Provider」。
- 在「選取驗證通訊協定」中,選取「OpenID Connect (OIDC)」。
- 在「建立供應商」部分,執行下列操作:
- 在「名稱」中,輸入供應商名稱。
- 在「說明」中,輸入提供者的說明。
- 在「核發者 (網址)」中,輸入核發者 URI。
OIDC 核發者 URI 必須採用有效的 URI 格式,且開頭為
https,例如:https://example.com/oidc。 - 在「用戶端 ID」中,輸入向 OIDC IdP 註冊的 OIDC 用戶端 ID;這個 ID 必須與 IdP 發行的 JWT 的
aud聲明相符。 如要建立已啟用的供應器,請確認「啟用供應器」已開啟。
- 按一下「繼續」。
- 在「與 IdP 分享提供者資訊」部分,複製網址。在 IdP 中,將這個網址設為重新導向 URI,讓 IdP 瞭解登入後要將斷言權杖傳送至何處。
- 按一下「繼續」。
- 在「設定 OIDC 網頁登入功能」部分,完成下列步驟:
- 在「流程類型」清單中,選取「程式碼」。
- 在「Assertion claims behavior」(聲明主張行為) 清單中,選取下列任一選項:
- 使用者資訊和 ID 權杖
- 僅限 ID 權杖
- 在「Client secret」(用戶端密鑰) 欄位中,輸入 IdP 的用戶端密鑰。
- 按一下「繼續」。
- 在「設定供應商」中,您可以設定屬性對應和屬性條件。如要建立屬性對應,請按照下列步驟操作。您可以提供 IdP 欄位名稱,也可以提供傳回字串的 CEL 格式運算式。
- 必填:在「OIDC 1」中,輸入 IdP 的主體,例如
assertion.sub。 - 選用:如要新增其他屬性對應,請按照下列步驟操作:
- 按一下 [新增對應]。
- 在 Google n 中 (其中 n 是數字),輸入其中一個Google Cloud支援的鍵。
- 在對應的「OIDC n」欄位中,以 CEL 格式輸入要對應的 IdP 特定欄位名稱。
- 如要增加群組數量,請按照下列步驟操作:
- 選取「使用額外屬性」。
- 在「額外屬性核發者 URI」欄位中,輸入核發者網址。
- 在「Extra Attributes Client ID」(額外屬性用戶端 ID) 欄位中,輸入用戶端 ID。
- 在「Extra Attributes Client Secret」(額外屬性用戶端密鑰) 欄位中輸入用戶端密鑰。
- 在「額外屬性類型」清單中,選取額外屬性的屬性類型。
- 在「額外屬性篩選器」欄位中,輸入透過 Microsoft Graph API 查詢群組時使用的篩選運算式。
- 如要建立屬性條件,請按照下列步驟操作:
- 按一下「新增條件」。
- 在「屬性條件」欄位中,以 CEL 格式輸入條件,例如
assertion.role == 'gcp-users'。這個條件範例可確保只有具備gcp-users角色的使用者,才能使用這個供應商登入。 - 如要啟用詳細稽核記錄,請在「詳細記錄」中,點選「啟用屬性值稽核記錄」切換鈕。
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄有助於排解員工身分集區提供者設定問題。如要瞭解如何使用詳細稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create時省略--detailed-audit-logging標記。如要停用詳細稽核記錄,您也可以更新提供者。
- 必填:在「OIDC 1」中,輸入 IdP 的主體,例如
- 如要建立提供者,請按一下「Submit」(提交)。
前往「Workforce Identity Pools」(員工身分集區) 頁面
使用 SAML 2.0 在 Microsoft Entra ID 中設定大量群組
本節說明如何使用 SAML 2.0 通訊協定,將 Microsoft Entra ID 中的最多 400 個群組對應至員工身分聯盟。
設定 Microsoft Entra ID 應用程式
如要設定應用程式,請按照下列步驟操作:
-
在 Microsoft Entra ID 入口網站中,完成下列步驟:
- 如要註冊新應用程式,請按照「註冊新應用程式」一文中的說明操作。
-
如要更新現有應用程式,請按照下列步驟操作:
- 前往 Microsoft Entra ID 應用程式註冊的「總覽」頁面。
依序前往「Entra ID」>「App registrations」。
- 選取要更新的應用程式。
-
按照「憑證和密鑰」中的操作說明,在應用程式中建立新的用戶端密鑰。請務必記下用戶端密鑰值,因為系統只會顯示一次。
請記下您建立或更新的應用程式中的下列值。您會在本文稍後設定工作團隊身分集區提供者時提供這些值。
Client IDIssuer URIClient SecretTenant ID
-
如要擷取 Microsoft Entra ID 群組,請新增 API 權限,讓員工身分聯盟使用 Microsoft Graph API 從 Microsoft Entra ID 存取使用者資訊,並授予管理員同意聲明。 在 Microsoft Entra ID 中執行下列操作:
- 前往「API permissions」。
- 按一下「新增權限」。
- 選取「Microsoft API」。
- 選取「應用程式權限」。
- 在搜尋欄位中輸入
User.ReadBasic.All。 - 按一下「Add permissions」。
您可以透過群組物件 ID、啟用電子郵件功能的群組電子郵件地址,或群組顯示名稱,擷取 Microsoft Entra ID 群組。
如果您選擇以群組電子郵件地址或顯示名稱擷取群組,則必須執行下一個步驟。
- 如要以群組電子郵件地址或顯示名稱的形式擷取 Microsoft Entra ID 群組,請按照下列步驟操作。如要以群組物件 ID 的形式擷取群組,請略過這個步驟。
- 前往「API permissions」。
- 按一下「新增權限」。
- 選取「Microsoft API」。
- 選取「應用程式權限」。
- 在搜尋欄位中輸入
GroupMember.Read.All。 - 按一下「Add permissions」。
前往先前建立或更新的 Microsoft Entra ID 應用程式「總覽」頁面。按一下「端點」。 核發者 URI 是 OIDC 中繼資料文件 URI,省略路徑
/.well-known/openid-configuration。舉例來說,如果 OIDC 中繼資料文件是
https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/.well-known/openid-configuration,核發者 URI 就是https://login.microsoftonline.com/d41ad248-019e-49e5-b3de-4bdfe1fapple/v2.0/。
建立工作團隊身分集區
gcloud
如要建立員工身分集區,請執行下列指令:
gcloud iam workforce-pools create WORKFORCE_POOL_ID \
--organization=ORGANIZATION_ID \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--session-duration=SESSION_DURATION \
--location=global
更改下列內容:
WORKFORCE_POOL_ID:您選擇用來代表工作團隊集區的 ID。集區 ID 在 Google Cloud 所有工作團隊身分集區中必須是全域唯一的。如要瞭解 ID 格式,請參閱 API 說明文件中的「查詢參數」一節。 Google CloudORGANIZATION_ID:員工身分集區的 Google Cloud 機構數字 ID。機構中的所有專案和資料夾都可使用員工身分集區。DISPLAY_NAME:選用。工作團隊身分集區的顯示名稱。DESCRIPTION:選用。工作團隊身分集區 說明。SESSION_DURATION:選用。工作階段持續時間,以附加s的數字表示,例如3600s。工作階段時間長度決定了從這個工作團隊集區取得的 Google Cloud 存取權杖、控制台 (聯盟) 登入工作階段,以及 gcloud CLI 登入工作階段的有效時間。工作階段持續時間預設為一小時 (3600 秒)。工作階段持續時間值必須介於 15 分鐘 (900 秒) 和 12 小時 (43200 秒) 之間。
控制台
如要建立工作團隊身分識別集區,請執行下列操作:
前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面:
選取工作團隊身分集區的機構。機構中的所有專案和資料夾都可以使用工作團隊身分集區。
按一下「建立集區」,然後執行下列操作:
在「名稱」欄位中,輸入集區的顯示名稱。系統會在您輸入名稱時自動衍生集區 ID,並顯示在「名稱」欄位下方。如要更新集區 ID,請點選集區 ID 旁的「編輯」。
選用:在「Description」(說明) 中輸入集區說明。
如要建立員工身分集區,請按「Next」(下一步)。
工作團隊身分集區的工作階段持續時間預設為一小時 (3600 秒)。 工作階段持續時間決定了 Google Cloud 存取權杖、控制台 (已加入聯盟) 和這個工作團隊集區的 gcloud CLI 登入工作階段的有效時間。建立集區後,您可以更新集區,設定自訂工作階段時間長度。工作階段持續時間必須介於 15 分鐘 (900 秒) 至 12 小時 (43,200 秒) 之間。
設定 SAML 2.0 工作團隊身分集區提供者
gcloud
如要建立 SAML 工作團隊身分集區提供者,請執行下列指令:
gcloud iam workforce-pools providers create-saml PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=global \
--display-name=DISPLAY_NAME \
--idp-metadata-path=XML_METADATA_PATH \
--attribute-mapping=ATTRIBUTE_MAPPING \
--extra-attributes-issuer-uri=EXTRA_ATTRIBUTES_ISSUER_URI \
--extra-attributes-client-id=EXTRA_ATTRIBUTES_CLIENT_ID \
--extra-attributes-client-secret-value=EXTRA_ATTRIBUTES_CLIENT_SECRET \
--extra-attributes-type=EXTRA_ATTRIBUTES_TYPE \
--extra-attributes-filter=EXTRA_ATTRIBUTES_FILTER \
--detailed-audit-logging
請替換下列項目:
-
PROVIDER_ID:專屬的供應商 ID。 前置字元gcp-為保留字元,不得用於集區或供應商 ID。 -
WORKFORCE_POOL_ID:工作團隊集區 ID。 -
DISPLAY_NAME:供應商的顯示名稱。 -
XML_METADATA_PATH:SAML 2.0 XML 中繼資料檔案的路徑。 -
ATTRIBUTE_MAPPING:從 Microsoft Entra ID 對應至 Google Cloud的屬性。 如果您使用--extra-attributes旗標從 Microsoft Entra ID 查詢群組,系統會忽略任何使用標準 SAML 或 OIDC 聲明的google.groups對應。舉例來說,如要對應 Microsoft Entra ID 的groups和subject屬性,請使用下列屬性對應:--attribute-mapping="google.groups=assertion.groups, google.subject=assertion.oid"
詳情請參閱「屬性對應」。
-
EXTRA_ATTRIBUTES_ISSUER_URI:Microsoft Entra ID 應用程式中的核發者 URI。 -
EXTRA_ATTRIBUTES_CLIENT_ID:Microsoft Entra ID 應用程式中的用戶端 ID。 -
EXTRA_ATTRIBUTES_CLIENT_SECRET:Microsoft Entra ID 應用程式中的額外用戶端密鑰。 -
EXTRA_ATTRIBUTES_TYPE:使用azure-ad-groups-mail擷取群組的電子郵件地址,使用azure-ad-groups-id擷取群組的 ID。使用azure-ad-groups-display-name擷取群組的顯示名稱。 -
EXTRA_ATTRIBUTES_FILTER:選用。透過 Microsoft Graph API 查詢群組時使用的篩選運算式。使用這項參數,即可確保從 IdP 擷取的群組數量低於上限 (400 個)。以下範例會擷取電子郵件 ID 前置字元為
sales的群組:--extra-attributes-filter='"mail:sales"'
下列運算式會擷取顯示名稱包含
sales字串的群組。--extra-attributes-filter='"displayName:sales"'
-
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄有助於排解員工身分集區提供者設定問題。如要瞭解如何使用詳細稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create時省略--detailed-audit-logging標記。如要停用詳細稽核記錄,您也可以更新提供者。
控制台
- 前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面:
- 在「Workforce Identity Pools」(工作團隊身分集區) 表格中,選取要建立提供者的集區。
- 在「供應商」部分中,按一下「新增供應商」。
- 在「Select a Provider vendor」(選取供應商) 清單中,選取您的身分識別提供者 (IdP)。
如果沒有列出您的 IdP,請選取「Generic Identity Provider」。
- 在「選取驗證通訊協定」中,選取「SAML」。
- 在「建立供應商」部分,執行下列操作:
- 在「名稱」中輸入供應商名稱。
- 選用:在「Description」(說明),輸入供應商的說明。
- 在「IdP 中繼資料檔案 (XML)」中,選取您在本指南稍早產生的中繼資料 XML 檔案。
- 如要建立已啟用的供應器,請確認「啟用供應器」已開啟。
- 按一下「繼續」。
- 在「Share your provider information」部分,複製網址。在 IdP 中,將第一個網址設為實體 ID,向 IdP 識別您的應用程式。 將另一個網址設為重新導向 URI,讓 IdP 瞭解登入後要將斷言權杖傳送至何處。
- 按一下「繼續」。
- 在「設定供應商」部分,執行下列操作:
- 在「屬性對應」中,輸入
google.subject的 CEL 運算式。 - 選用:如要輸入其他對應,請按一下「新增對應」,然後輸入其他對應,例如:
- 如果您選取 Microsoft Entra ID 做為 IdP,可以增加群組數量。
- 選取「使用額外屬性」。
- 在「額外屬性核發者 URI」欄位中,輸入核發者網址。
- 在「Extra Attributes Client ID」(額外屬性用戶端 ID) 欄位中,輸入用戶端 ID。
- 在「Extra Attributes Client Secret」(額外屬性用戶端密鑰) 欄位中,輸入用戶端密鑰。
- 在「額外屬性類型」清單中,選取額外屬性的屬性類型。
- 在「額外屬性篩選器」欄位中,輸入透過 Microsoft Graph API 查詢群組時使用的篩選運算式。
- 選用:如要新增屬性條件,請按一下「新增條件」,然後輸入代表屬性條件的 CEL 運算式。
舉例來說,如要將
ipaddr屬性限制在特定 IP 範圍內,可以設定assertion.attributes.ipaddr.startsWith('98.11.12.')條件。這個條件可確保只有 IP 位址以98.11.12.開頭的使用者,才能透過這個員工身分提供者登入。 - 按一下「繼續」。
- 如要啟用詳細稽核記錄,請在「詳細記錄」中,點選「啟用屬性值稽核記錄」切換鈕。
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄有助於排解員工身分集區提供者設定問題。如要瞭解如何使用詳細稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create時省略--detailed-audit-logging標記。如要停用詳細稽核記錄,您也可以更新提供者。
這個範例會將 IdP 屬性google.subject=assertion.oid attribute.costcenter=assertion.attributes.costcenter[0]assertion.oid和assertion.attributes.costcenter[0]分別對應至 Google Cloud 屬性google.subject和attribute.costcenter。 - 在「屬性對應」中,輸入
- 如要建立提供者,請按一下「Submit」(提交)。
前往「Workforce Identity Pools」(員工身分集區) 頁面
驗證供應商設定
測試使用者登入流程前,請先確認供應商設定正確無誤,且 Google Cloud 可以與 IdP 交換權杖。
Google Cloud 控制台的「驗證供應商屬性」頁面包含屬性檢視器,可讓您以互動方式測試設定,並偵錯通用運算式語言 (CEL) 運算式。您可以使用屬性檢視器執行下列操作:
- 查看 IdP 聲明中傳送的原始屬性。
- 確認屬性對應和條件可正確轉換這些屬性。
- 即時偵錯複雜的 CEL 運算式。
如要驗證供應商設定,請按照下列步驟操作:
- 如要為員工身分聯盟啟用瀏覽器型登入流程,請將
https://auth.cloud.google/signin-callback/locations/global/workforcePools/POOL_ID/providers/PROVIDER_ID新增至 IdP 的允許重新導向 URI 清單。 -
前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面。
前往「Workforce Identity Pools」(員工身分集區) 頁面 - 在集區清單中,按一下要驗證的集區名稱。
- 在「員工集區詳細資料」頁面中,按一下要驗證的 IdP 名稱。
- 在「供應商詳細資料」頁面中,按一下「偵錯 IdP 權杖」。
- 在「Sign in」(登入) 對話方塊中,以測試使用者身分登入 IdP。
「驗證提供者屬性」頁面會顯示對應的屬性,以及屬性條件的結果。
「IdP 權杖中的對應屬性」部分會顯示 Google 屬性 (例如 google.subject) 如何根據對應設定,從 IdP 權杖填入。如果對應有誤,系統會顯示錯誤圖示。
「屬性條件」部分會顯示條件的布林結果。如果條件評估結果為 false,系統就會封鎖登入作業。
如要查看完整斷言權杖,請按一下「查看完整權杖」。這會顯示 IdP 的原始 JSON 物件。使用 assertion.PROPERTY_NAME 格式,在對應中參照頂層屬性。
編輯提供者設定
如要修正錯誤,請編輯設定:
- 在「驗證提供者屬性」頁面中,按一下「編輯」圖示 。
- 進行必要變更。
- 如要開始新的測試並查看更新結果,請按一下「儲存並重新擷取權杖」。
將 IAM 角色授予群組
在本節中,您會將角色授予 Google Cloud 資源的群組。如要進一步瞭解員工身分聯盟主體 ID,請參閱「在 IAM 政策中代表員工集區使用者」。
下列範例會將「Storage 管理員」角色 (roles/storage.admin) 授予 Microsoft Entra ID 群組中的使用者。
gcloud projects add-iam-policy-binding PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
請替換下列項目:
-
PROJECT_ID:專案 ID -
WORKFORCE_POOL_ID:員工身分集區 ID -
GROUP_ID:群組 ID,取決於用於建立員工身分集區供應商的--extra-attributes-type值,如下所示:azure-ad-groups-mail:群組 ID 是電子郵件地址,例如:admin-group@altostrat.comazure-ad-groups-id:群組 ID 是群組的 UUID,例如:abcdefgh-0123-0123-abcdef
登入並測試存取權
在本節中,您會以工作團隊身分集區使用者身分登入,並測試您是否能存取 Google Cloud 資源。
登入
本節說明如何以同盟使用者身分登入,並存取Google Cloud 資源。
控制台 (聯盟) 登入
如要登入 Google Cloud 員工身分聯盟控制台 (又稱聯合控制台),請按照下列步驟操作:
-
前往主控台 (聯合) 登入頁面。
-
輸入提供者名稱,格式如下:
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
如果系統提示,請在 Microsoft Entra ID 中輸入使用者憑證。
如果您啟動 IdP 啟動的登入程序,請使用以下網址做為中繼網址:https://console.cloud.google/。
gcloud CLI 瀏覽器登入
如要使用瀏覽器登入流程登入 gcloud CLI,請執行下列操作:
建立設定檔
執行下列指令,建立登入設定檔:
Linux 和 macOS
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --output-file=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud iam workforce-pools create-login-config ` locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID ` --output-file=LOGIN_CONFIG_PATH
更改下列內容:
WORKFORCE_POOL_ID:員工身分聯盟集區 ID。WORKFORCE_PROVIDER_ID:員工身分聯盟提供者 ID。-
LOGIN_CONFIG_PATH:登入設定檔的寫入路徑。例如:login-config.json。
登入設定檔包含 gcloud CLI 啟動瀏覽器式驗證流程時使用的端點,並將對象設為工作團隊身分集區提供者中設定的 IdP。檔案不含機密資訊。
登入設定檔內容類似於下列範例:
{ "universe_domain": "googleapis.com", "universe_cloud_web_domain": "cloud.google", "type": "external_account_authorized_user_login_config", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "auth_url": "https://auth.cloud.google/authorize", "token_url": "https://sts.googleapis.com/v1/oauthtoken", "token_info_url": "https://sts.googleapis.com/v1/introspect" }
使用瀏覽器驗證登入
使用環境變數或使用中 gcloud CLI 設定中的屬性,指向登入設定檔,或直接搭配 gcloud auth login 指令使用:
環境變數
如要搭配環境變數使用登入設定檔,請完成下列操作說明:
-
將
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE環境變數設為登入設定檔的路徑。 -
執行下列指令:
gcloud auth login
- gcloud CLI 會參照環境變數,找出登入設定檔,然後啟動驗證程序。按照瀏覽器式流程驗證及授權 gcloud CLI,以便日後代表您存取資源。
如要停止使用 gcloud auth login 指令的登入設定檔,請清除 CLOUDSDK_AUTH_LOGIN_CONFIG_FILE 環境變數。
gcloud CLI 設定
如要搭配使用登入設定檔和 gcloud CLI 設定屬性,請完成下列操作說明:
-
使用下列指令,將有效 gcloud CLI 設定的
auth/login_config_file屬性設為登入設定檔的路徑:gcloud config set auth/login_config_file LOGIN_CONFIG_PATH
-
執行下列指令:
gcloud auth login
- gcloud CLI 會參照設定屬性來尋找登入設定檔,然後啟動驗證程序。按照瀏覽器式流程驗證及授權 gcloud CLI,以便日後代表您存取資源。
如要停止使用登入設定檔執行 gcloud auth login 指令,請使用下列指令取消設定屬性:
gcloud config unset auth/login_config_file
gcloud auth login
如要直接使用登入設定檔搭配 gcloud auth login 指令,請完成下列操作說明:
-
如果您在建立登入設定檔時使用
--activate旗標,請執行下列指令:gcloud auth login
-
如果您在建立登入設定檔時未使用
--activate旗標,請執行下列指令:Linux 和 macOS
gcloud auth login \ --login-config=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud auth login ` --login-config=LOGIN_CONFIG_PATH
請將 LOGIN_CONFIG_PATH 替換為登入設定檔的路徑。
gcloud auth login 指令會將存取憑證儲存在主目錄中。通過驗證的主體會成為有效 gcloud CLI 設定中的有效主體。除非遭到覆寫,否則 gcloud CLI 會使用這些已儲存的憑證存取 Google Cloud。
gcloud CLI 無頭登入
如要使用 gcloud CLI 登入 Microsoft Entra ID,請執行下列操作:
OIDC
按照「傳送登入要求」中的步驟操作。 使用 OIDC,透過 Microsoft Entra ID 將使用者登入應用程式。
從重新導向網址的
id_token參數複製 ID 權杖,並儲存在本機電腦安全位置的檔案中。在後續步驟中,您會將 PATH_TO_OIDC_ID_TOKEN 設為這個檔案的路徑。執行下列指令,產生類似本步驟稍後範例的設定檔:
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --subject-token-type=urn:ietf:params:oauth:token-type:id_token \ --credential-source-file=PATH_TO_OIDC_ID_TOKEN \ --workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \ --output-file=config.json更改下列內容:
WORKFORCE_POOL_ID:員工身分集區 ID。WORKFORCE_PROVIDER_ID:員工身分集區提供者 ID。PATH_TO_OIDC_ID_TOKEN:儲存 IdP 權杖的檔案路徑。WORKFORCE_POOL_USER_PROJECT:用於配額和帳單的專案編號或 ID。主體必須擁有這個專案的serviceusage.services.use權限。
指令完成後,Microsoft Entra ID 會建立下列設定檔:
{ "type": "external_account", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "subject_token_type": "urn:ietf:params:oauth:token-type:id_token", "token_url": "https://sts.googleapis.com/v1/token", "workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT", "credential_source": { "file": "PATH_TO_OIDC_CREDENTIALS" } }開啟 gcloud CLI 並執行下列指令:
gcloud auth login --cred-file=PATH_TO_OIDC_CREDENTIALS將 PATH_TO_OIDC_CREDENTIALS 替換為上一步的輸出檔案路徑。
gcloud CLI 會將您的憑證透明地發布至 Security Token Service 端點。端點會將授權碼換成臨時 Google Cloud 存取權杖。
現在可以執行 gcloud CLI 指令來Google Cloud。
SAML
將使用者登入 Microsoft Entra ID 應用程式,並取得 SAML 回應。
將 Microsoft Entra ID 傳回的 SAML 回應儲存在本機電腦的安全位置,然後依下列方式儲存路徑:
SAML_ASSERTION_PATH=SAML_ASSERTION_PATH如要產生憑證設定檔,請執行下列指令:
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --subject-token-type=urn:ietf:params:oauth:token-type:saml2 \ --credential-source-file=SAML_ASSERTION_PATH \ --workforce-pool-user-project=PROJECT_ID \ --output-file=config.json更改下列內容:
WORKFORCE_PROVIDER_ID:您在本指南中稍早建立的員工身分集區提供者 IDWORKFORCE_POOL_ID:您在本指南中稍早建立的員工身分集區 IDSAML_ASSERTION_PATH:SAML 聲明檔案的路徑PROJECT_ID:專案 ID
產生的設定檔類似於下列內容:
{ "type": "external_account", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "subject_token_type": "urn:ietf:params:oauth:token-type:saml2", "token_url": "https://sts.googleapis.com/v1/token", "credential_source": { "file": "SAML_ASSERTION_PATH" }, "workforce_pool_user_project": "PROJECT_ID" }如要使用員工身分聯盟權杖交換功能登入 gcloud CLI,請執行下列指令:
gcloud auth login --cred-file=config.json接著,gcloud CLI 會以透明方式將 Microsoft Entra ID 憑證換成臨時 Google Cloud 存取權杖。有了存取權杖,您就能存取 Google Cloud。
畫面會顯示類似以下內容的輸出:
Authenticated with external account user credentials for: [principal://iam.googleapis.com/locations/global/workforcePools/
WORKFORCE_POOL_ID/subject/USER_ID].如要列出已通過驗證的帳戶和有效帳戶,請執行下列指令:
gcloud auth list
測試存取權
您現在可以存取 Google Cloud 支援員工身分聯盟的產品,以及您獲准存取的產品。在本文件的稍早部分,您已將「Storage 管理員」角色 (roles/storage.admin) 授予專案 TEST_PROJECT_ID 中gcloud projects add-iam-policy-binding指定群組 ID 內的所有身分。
現在您可以列出 Cloud Storage bucket,測試自己是否具備存取權。
主控台 (已聯邦)
如要使用控制台 (聯合) 測試存取權,請按照下列步驟操作:
前往 Cloud Storage 頁面。
確認您可以看到
TEST_PROJECT_ID的現有 bucket 清單。
gcloud CLI
如要使用 gcloud CLI 測試存取權,您可以列出有權存取的專案 Cloud Storage 值區和物件。如要執行此操作,請執行下列指令。主體必須具備指定專案的serviceusage.services.use權限。
gcloud storage ls --project="TEST_PROJECT_ID"
刪除使用者
員工身分聯盟會為聯盟使用者身分建立使用者中繼資料和資源。如果您選擇在 IdP 中刪除使用者,也必須在 Google Cloud中明確刪除這些資源。如要這麼做,請參閱「刪除員工身分聯盟使用者及其資料」。
您可能會發現資源仍與已刪除的使用者相關聯。這是因為刪除使用者中繼資料和資源需要長時間執行的作業。啟動刪除使用者身分程序後,使用者在刪除前啟動的程序會繼續執行,直到完成或取消為止。
後續步驟
- 在 Microsoft Entra ID 中設定 SCIM
- 刪除員工身分聯盟使用者及其資料
- 瞭解 Google Cloud 支援員工身分聯盟的產品
- 設定使用者對控制台 (聯合) 的存取權