本文說明如何使用 Microsoft Entra ID 身分識別提供者 (IdP) 設定員工身分聯盟,以及如何管理Google Cloud的存取權。聯合使用者隨後即可存取 Google Cloud 服務 ,這些服務支援員工身分聯盟。 您可以使用 OIDC 或 SAML 2.0 通訊協定,同盟身分。
事前準備
- 確認您已 Google Cloud 設定機構。
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- 在 Microsoft Entra ID 中,請確認已為隱含流程啟用 ID 權杖。詳情請參閱「啟用 ID 權杖隱含授權」。
- 如要登入,您的 IdP 必須提供已簽署的驗證資訊:OIDC IdP 必須提供 JWT,且 SAML IdP 回應必須經過簽署。
- 如要接收貴機構或產品的異動相關重要資訊,請務必提供必要聯絡人。Google Cloud 詳情請參閱「員工身分聯盟總覽」。
費用
員工身分聯盟是免付費功能。不過,員工身分聯盟詳細稽核記錄會使用 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 系統管理入口網站。
依序前往「身分識別」>「應用程式」>「應用程式註冊」。
如要開始設定應用程式註冊,請按照下列步驟操作:
按一下 [新增註冊]。
輸入應用程式名稱。
在「支援的帳戶類型」中選取選項。
在「重新導向 URI」部分,從「選取平台」下拉式清單中選取「網站」。
在文字欄位中輸入重新導向網址。使用者成功登入後,系統會將他們重新導向這個網址。如要設定控制台 (聯盟) 的存取權,請使用下列網址格式:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
更改下列內容:
WORKFORCE_POOL_ID
:員工身分集區 ID,您稍後會在本文中建立員工身分集區時使用,例如:entra-id-oidc-pool
WORKFORCE_PROVIDER_ID
:工作團隊身分集區提供者 ID,您稍後會在本文中建立工作團隊身分集區提供者時使用,例如:entra-id-oidc-pool-provider
如要瞭解如何設定 ID 格式,請參閱 API 說明文件中的「查詢參數」一節。
如要建立應用程式註冊,請按一下「Register」。
如要使用本文稍後提供的屬性對應範例,請建立自訂
department
屬性。
建議:根據安全性最佳做法,建議您設定群組聲明,方法如下:
前往 Microsoft Entra ID 應用程式註冊頁面。
按一下「權杖設定」。
按一下「新增群組聲明」。
選取要傳回的群組類型。詳情請參閱「設定群組選用聲明」。
SAML
如要建立使用 SAML 通訊協定的 Microsoft Entra ID 應用程式註冊,請按照下列步驟操作:
登入 Microsoft Entra 系統管理入口網站。
依序前往「身分識別」>「應用程式」>「應用程式註冊」。
如要開始設定企業應用程式,請按照下列步驟操作:
依序點選「新應用程式」>「建立自己的應用程式」。
輸入應用程式名稱。
點選「建立」。
依序前往「單一登入」>「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-pool
WORKFORCE_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 應用程式。
點選 [Single sign-on] (單一登入)。
在「屬性和聲明」部分,按一下「編輯」。
按一下「新增群組聲明」。
選取要退貨的群組類型。詳情請參閱「使用 SSO 設定,將群組聲明新增至 SAML 應用程式的權杖」。
建立工作團隊身分集區
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
:您選擇用來代表 Google Cloud 工作團隊集區的 ID。如要瞭解如何設定 ID 格式,請參閱 API 說明文件中的「查詢參數」一節。ORGANIZATION_ID
:員工身分集區的 Google Cloud 機構數值 ID。員工身分集區適用於機構中的所有專案和資料夾。DISPLAY_NAME
:選用。工作團隊身分識別集區的顯示名稱。DESCRIPTION
:選用。工作團隊身分集區說明。SESSION_DURATION
:選用。工作階段時間長度決定了從這個工作團隊集區取得的 Google Cloud 存取權杖、控制台 (已聯合) 登入工作階段,以及 gcloud CLI 登入工作階段的有效時間。工作階段持續時間預設為一小時 (3600 秒)。工作階段時間值必須介於 15 分鐘 (900 秒) 和 12 小時 (43200 秒) 之間。
主控台
如要建立工作團隊身分集區,請執行下列操作:
前往 Google Cloud 控制台的「Workforce Identity Pools」頁面:
選取工作團隊身分集區的機構。機構中的所有專案和資料夾都可使用 Workforce 身分集區。
按一下「建立集區」,然後執行下列操作:
在「Name」(名稱) 欄位中,輸入集區的顯示名稱。系統會在您輸入名稱時自動衍生集區 ID,並顯示在「名稱」欄位下方。如要更新集區 ID,請點選集區 ID 旁的「編輯」。
選用:在「說明」中輸入集區說明。
如要建立員工身分集區,請按「Next」(下一步)。
工作團隊身分集區的工作階段持續時間預設為一小時 (3600 秒)。 工作階段時間長度決定了從這個工作團隊集區取得的 Google Cloud 存取權杖、控制台 (聯盟) 和 gcloud CLI 登入工作階段的有效時間。建立集區後,您可以更新集區,設定自訂工作階段時間長度。工作階段持續時間必須介於 15 分鐘 (900 秒) 至 12 小時 (43,200 秒) 之間。
建立 Microsoft Entra ID 工作團隊身分集區提供者
本節說明如何建立員工身分識別集區供應商,讓 IdP 使用者存取 Google Cloud。您可以設定提供者使用 OIDC 或 SAML 通訊協定。
建立 OIDC 工作團隊身分集區提供者
如要使用 OIDC 通訊協定,為 Microsoft Entra ID 應用程式整合服務建立工作團隊身分集區提供者,請按照下列步驟操作:
如要取得 Microsoft Entra ID 應用程式的核發者 URI,請按照下列步驟操作:
- 前往 Microsoft Entra ID 應用程式註冊頁面。
- 按一下 [端點]。
- 在新分頁中開啟 OpenID Connect 中繼資料文件。
- 在 JSON 中,複製
issuer
的值。
如要取得 Microsoft Entra ID 應用程式的用戶端 ID,請按照下列步驟操作:
- 前往 Microsoft Entra ID 應用程式註冊頁面。
- 複製「應用程式 (用戶端) ID」中的值。
如要為網頁式登入建立 OIDC 工作團隊身分集區提供者,請按照下列步驟操作:
gcloud
如要建立支援 OIDC 通訊協定的供應商,請按照下列步驟操作:
代碼流程
如要建立使用授權碼流程的 OIDC 提供者,以便透過網路登入,請按照下列步驟操作:
在 Microsoft Entra ID 應用程式中,如要取得用戶端密鑰,請按照下列步驟操作:
前往 Microsoft Entra ID 應用程式註冊頁面。
在「Certificates & secrets」中,按一下「Client secrets」分頁標籤。
如要新增用戶端密鑰,請按一下「+ 新增用戶端密鑰」。
在「新增用戶端密鑰」對話方塊中,視需要輸入資訊。
如要建立用戶端密鑰,請按一下「新增」。
在「用戶端密碼」分頁中,找出新的用戶端密碼。
在新的用戶端密鑰「Value」(值) 欄中,按一下「Copy」(複製)content_copy。
在 Google Cloud 控制台中,如要建立使用程式碼流程的 OIDC 供應商,請按照下列步驟操作:
gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --issuer-uri="ISSUER_URI" \ --client-id="OIDC_CLIENT_ID" \
--client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --detailed-audit-logging \ --location=global取代下列項目:
WORKFORCE_PROVIDER_ID
:工作團隊身分集區供應商的專屬 ID。前置字串「gcp-
」為預留字串,不得用於工作團隊身分集區或工作團隊身分集區提供者 ID。WORKFORCE_POOL_ID
:要連結 IdP 的工作團隊身分集區 ID。DISPLAY_NAME
:供應商的選用簡單顯示名稱,例如idp-eu-employees
。DESCRIPTION
:工作團隊提供者說明 (選填),例如IdP for Partner Example Organization employees
。ISSUER_URI
:OIDC 核發者 URI,格式必須為有效的 URI,且開頭為https
,例如https://example.com/oidc
。注意:基於安全考量,ISSUER_URI
必須使用 HTTPS 通訊協定。OIDC_CLIENT_ID
:向 OIDC IdP 註冊的 OIDC 用戶端 ID;這個 ID 必須與 IdP 發行的 JWT 的aud
聲明相符。OIDC_CLIENT_SECRET
:OIDC 用戶端密碼。WEB_SSO_ADDITIONAL_SCOPES
:要傳送至 OIDC IdP 的選用額外範圍,適用於主控台 (已連結) 或 gcloud CLI 瀏覽器型登入。ATTRIBUTE_MAPPING
:屬性對應。 如果是使用 OIDC 驗證的 Microsoft Entra ID,建議採用下列屬性對應:google.subject=assertion.sub, google.groups=assertion.groups, google.display_name=assertion.preferred_username
這個範例會將 IdP 屬性
subject
、groups
和preferred_username
分別對應至 Google Cloud屬性google.subject
、google.groups
和google.display_name
。ATTRIBUTE_CONDITION
:屬性條件;例如,如要將ipaddr
屬性限制在特定 IP 範圍內,可以設定assertion.ipaddr.startsWith('98.11.12.')
條件。JWK_JSON_PATH
:本機上傳的 OIDC JWK 的選用路徑。 如果未提供這個參數, Google Cloud 會改用 IdP 的/.well-known/openid-configuration
路徑,取得含有公開金鑰的 JWK。如要進一步瞭解本機上傳的 OIDC JWK,請參閱管理 OIDC JWK。-
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄有助於排解工作團隊身分識別集區提供者設定問題。如要瞭解如何透過詳細的稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create
時省略--detailed-audit-logging
旗標。如要停用詳細稽核記錄,您也可以更新供應商。
locations/global/workforcePools/enterprise-example-organization-employees
。
隱含流程
如要建立使用隱含流程的 OIDC 供應商,以供網頁登入,請按照下列步驟操作:
如要在 Microsoft Entra ID 應用程式中啟用 ID 權杖,請按照下列步驟操作:
- 前往 Microsoft Entra ID 應用程式註冊頁面。
- 在「驗證」中,勾選「ID 權杖」核取方塊。
- 按一下 [儲存]。
如要建立供應商,請執行下列指令:
gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --issuer-uri="ISSUER_URI" \ --client-id="OIDC_CLIENT_ID" \ --web-sso-response-type="id-token" \ --web-sso-assertion-claims-behavior="only-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --detailed-audit-logging \ --location=global
取代下列項目:
WORKFORCE_PROVIDER_ID
:工作團隊身分集區供應商的專屬 ID。前置字串「gcp-
」為預留字串,不得用於工作團隊身分集區或工作團隊身分集區提供者 ID。WORKFORCE_POOL_ID
:要連結 IdP 的工作團隊身分集區 ID。DISPLAY_NAME
:供應商的選用簡單顯示名稱,例如idp-eu-employees
。DESCRIPTION
:工作團隊提供者說明 (選填),例如IdP for Partner Example Organization employees
。ISSUER_URI
:OIDC 核發者 URI,格式必須為有效的 URI,且開頭為https
,例如https://example.com/oidc
。注意:基於安全考量,ISSUER_URI
必須使用 HTTPS 通訊協定。OIDC_CLIENT_ID
:向 OIDC IdP 註冊的 OIDC 用戶端 ID;這個 ID 必須與 IdP 發行的 JWT 的aud
聲明相符。WEB_SSO_ADDITIONAL_SCOPES
:要傳送至 OIDC IdP 的選用額外範圍,適用於主控台 (已連結) 或 gcloud CLI 瀏覽器型登入。ATTRIBUTE_MAPPING
:屬性對應。 如果是使用 OIDC 驗證的 Microsoft Entra ID,建議採用下列屬性對應:google.subject=assertion.sub, google.groups=assertion.groups, google.display_name=assertion.preferred_username
這個範例會將 IdP 屬性
subject
、groups
和preferred_username
分別對應至 Google Cloud屬性google.subject
、google.groups
和google.display_name
。ATTRIBUTE_CONDITION
:屬性條件;例如,如要將ipaddr
屬性限制在特定 IP 範圍內,可以設定assertion.ipaddr.startsWith('98.11.12.')
條件。JWK_JSON_PATH
:本機上傳的 OIDC JWK 的選用路徑。 如果未提供這個參數, Google Cloud 會改用 IdP 的/.well-known/openid-configuration
路徑,取得含有公開金鑰的 JWK。如要進一步瞭解本機上傳的 OIDC JWK,請參閱管理 OIDC JWK。-
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄有助於排解工作團隊身分識別集區提供者設定問題。如要瞭解如何透過詳細的稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create
時省略--detailed-audit-logging
旗標。如要停用詳細稽核記錄,您也可以更新供應商。
locations/global/workforcePools/enterprise-example-organization-employees
。
控制台
代碼流程
如要建立使用授權碼流程的 OIDC 提供者,以便透過網路登入,請按照下列步驟操作:
如要取得 Microsoft Entra ID 用戶端密鑰,請按照下列步驟操作:
前往 Microsoft Entra ID 應用程式註冊頁面。
在「Certificates & secrets」中,按一下「Client secrets」分頁標籤。
如要新增用戶端密鑰,請按一下「+ 新增用戶端密鑰」。
在「新增用戶端密鑰」對話方塊中,視需要輸入資訊。
如要建立用戶端密鑰,請按一下「新增」。
在「用戶端密碼」分頁中,找出新的用戶端密碼。
在新的用戶端密鑰「Value」(值) 欄中,按一下「Copy」(複製)content_copy。
在 Google Cloud 控制台中,如要建立使用授權碼流程的 OIDC 提供者,請按照下列步驟操作:
前往 Google Cloud 控制台的「Workforce Identity Pools」頁面:
在「工作團隊身分集區」表格中,選取要建立提供者的集區。
在「供應商」表格中,按一下「新增供應商」。
在「選取通訊協定」中,選取「Open ID Connect (OIDC)」。
在「建立集區提供者」中,執行下列操作:
- 在「名稱」中輸入供應商名稱。
- 在「核發者 (網址)」中,輸入核發者 URI。OIDC 核發者 URI 必須採用有效的 URI 格式,且開頭為
https
,例如https://example.com/oidc
。 - 輸入「用戶端 ID」,也就是向 OIDC IdP 註冊的 OIDC 用戶端 ID;這個 ID 必須與 IdP 發行的 JWT 的
aud
聲明相符。 - 如要建立已啟用的供應商,請確認「已啟用供應商」已開啟。
- 按一下「繼續」。
在「流程類型」中,執行下列操作。流程類型僅適用於網頁式單一登入流程。
- 在「流程類型」中,選取「程式碼」。
- 在「用戶端密鑰」中,輸入 IdP 的用戶端密鑰。
在「聲明主張行為」中,選取下列任一選項:
- 使用者資訊和 ID 權杖
- 僅限 ID 權杖
按一下「繼續」。
在「設定供應商」中,您可以設定屬性對應和屬性條件。如要建立屬性對應,請按照下列步驟操作。您可以提供 IdP 欄位名稱,也可以提供傳回字串的 CEL 格式運算式。
必要:在「OIDC 1」中,輸入 IdP 的主體,例如
assertion.sub
。如果是使用 OIDC 驗證的 Microsoft Entra ID,建議採用下列屬性對應:
google.subject=assertion.sub, google.groups=assertion.groups, google.display_name=assertion.preferred_username
這個範例會將 IdP 屬性
subject
、groups
和preferred_username
分別對應至 Google Cloud屬性google.subject
、google.groups
和google.display_name
。選用:如要新增其他屬性對應,請按照下列步驟操作:
- 按一下 [新增對應]。
- 在「Google n」中 (其中 n 是數字),輸入其中一個Google Cloud支援的按鍵。
- 在對應的 OIDC n 欄位中,以 CEL 格式輸入要對應的 IdP 特定欄位名稱。
如要建立屬性條件,請按照下列步驟操作:
- 按一下「新增條件」。
- 在「屬性條件」中,以 CEL 格式輸入條件;舉例來說,如要將
ipaddr
屬性限制在特定 IP 範圍內,可以設定assertion.ipaddr.startsWith('98.11.12.')
條件。
如要啟用詳細稽核記錄,請在「詳細記錄」中,點按「啟用詳細屬性值記錄」切換鈕。
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄有助於排解工作團隊身分識別集區提供者設定問題。如要瞭解如何透過詳細的稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create
時省略--detailed-audit-logging
旗標。如要停用詳細稽核記錄,您也可以更新供應商。
如要建立提供者,請按一下「提交」。
隱含流程
如要建立使用隱含流程的 OIDC 供應商,以便透過網路登入,請按照下列步驟操作:
如要在 Microsoft Entra ID 應用程式中啟用 ID 權杖,請按照下列步驟操作:
- 前往 Microsoft Entra ID 應用程式註冊頁面。
- 在「驗證」中,勾選「ID 權杖」核取方塊。
- 按一下 [儲存]。
前往 Google Cloud 控制台的「Workforce Identity Pools」頁面:
在「工作團隊身分集區」表格中,選取要建立提供者的集區。
在「供應商」表格中,按一下「新增供應商」。
在「選取通訊協定」中,選取「Open ID Connect (OIDC)」。
在「建立集區提供者」中,執行下列操作:
- 在「名稱」部分,輸入供應商名稱。
- 在「核發者 (網址)」中,輸入核發者 URI。OIDC 核發者 URI 必須採用有效的 URI 格式,且開頭為
https
,例如https://example.com/oidc
。 - 輸入「用戶端 ID」,也就是向 OIDC IdP 註冊的 OIDC 用戶端 ID;這個 ID 必須與 IdP 發行的 JWT 的
aud
聲明相符。 - 如要建立已啟用的供應商,請確認「已啟用供應商」已開啟。
- 按一下「繼續」。
在「流程類型」中,執行下列操作。流程類型僅適用於網頁式單一登入流程。
- 在「流程類型」中,選取「ID 權杖」。
- 按一下「繼續」。
在「設定供應商」中,您可以設定屬性對應和屬性條件。如要建立屬性對應,請按照下列步驟操作。您可以提供 IdP 欄位名稱,也可以提供傳回字串的 CEL 格式運算式。
必要:在「OIDC 1」中,輸入 IdP 的主體,例如
assertion.sub
。如果是使用 OIDC 驗證的 Microsoft Entra ID,建議採用下列屬性對應:
google.subject=assertion.sub, google.groups=assertion.groups, google.display_name=assertion.preferred_username
這個範例會將 IdP 屬性
subject
、groups
和preferred_username
分別對應至 Google Cloud屬性google.subject
、google.groups
和google.display_name
。選用:如要新增其他屬性對應,請按照下列步驟操作:
- 按一下 [新增對應]。
- 在「Google n」中 (其中 n 是數字),輸入其中一個Google Cloud支援的按鍵。
- 在對應的 OIDC n 欄位中,以 CEL 格式輸入要對應的 IdP 特定欄位名稱。
如要建立屬性條件,請按照下列步驟操作:
- 按一下「新增條件」。
在「屬性條件」中,以 CEL 格式輸入條件;舉例來說,如要將
ipaddr
屬性限制在特定 IP 範圍內,可以設定assertion.ipaddr.startsWith('98.11.12.')
條件。
如要啟用詳細稽核記錄,請在「詳細記錄」中,點按「啟用詳細屬性值記錄」切換鈕。
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄有助於排解工作團隊身分識別集區提供者設定問題。如要瞭解如何透過詳細的稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱 Google Cloud Observability 定價。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create
時省略--detailed-audit-logging
旗標。如要停用詳細稽核記錄,您也可以更新供應商。
如要建立提供者,請按一下「提交」。
建立 SAML 2.0 工作團隊身分集區提供者
在 SAML IdP 中,為 Google Cloud員工身分聯盟註冊新應用程式。
設定 SAML 宣告的目標對象。 通常是 IdP 設定中的
SP Entity ID
欄位。請務必將其設為下列網址:https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
設定重新導向網址,又稱為宣告客戶服務 (ACS) 網址。如要設定重新導向網址,請在 SAML IdP 中找到重新導向網址欄位,然後執行下列任一操作:
如要透過 Google Cloud 主控台或其他瀏覽器登入方法設定瀏覽器登入,請輸入下列網址:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
更改下列內容:
WORKFORCE_POOL_ID
:工作團隊身分集區 IDWORKFORCE_PROVIDER_ID
:您稍後在本文件中建立的員工身分集區提供者 ID。
如要透過 IdP 設定程式輔助登入,請輸入下列網址:
localhost
如要進一步瞭解如何設定控制台登入,請參閱「設定使用者控制台存取權」。
在 Google Cloud中,使用 IdP 的 SAML 中繼資料文件建立 SAML 工作團隊身分識別集區供應商。您可以從 IdP 下載 SAML 中繼資料 XML 文件。文件至少須包含下列資訊:
- IdP 的 SAML 實體 ID。
- IdP 的單一登入網址。
- 至少一個簽署公開金鑰。如要瞭解簽署金鑰的詳細規定,請參閱本指南稍後的「金鑰規定」。
gcloud
如要儲存 Microsoft Entra ID 應用程式的 SAML 中繼資料,請按照下列步驟操作:
- 前往 Microsoft Entra ID 應用程式。
- 點選 [Single sign-on] (單一登入)。
- 在「SAML 憑證」部分,下載同盟中繼資料 XML。
- 將中繼資料儲存為本機 XML 檔案。
如要建立 SAML 工作團隊身分識別集區提供者,請執行下列指令:
gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
--workforce-pool="WORKFORCE_POOL_ID" \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--idp-metadata-path="XML_METADATA_PATH" \
--attribute-mapping="ATTRIBUTE_MAPPING" \
--attribute-condition="ATTRIBUTE_CONDITION" \
--detailed-audit-logging \
--location=global
更改下列內容:
WORKFORCE_PROVIDER_ID
:供應商 ID。WORKFORCE_POOL_ID
:員工身分集區 ID。DISPLAY_NAME
:顯示名稱。DESCRIPTION
:說明。XML_METADATA_PATH
:XML 格式中繼資料檔案的路徑,內含 SAML 識別資訊提供者的設定中繼資料。ATTRIBUTE_MAPPING
:屬性對應,例如: 這個範例會將 IdP 屬性google.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
、assertion.attributes['https://example.com/aliases']
和assertion.attributes.costcenter[0]
分別對應至 Google Cloud屬性google.subject
、google.groups
和google.costcenter
。詳情請參閱「屬性對應」。
ATTRIBUTE_CONDITION
:選用的屬性條件。 舉例來說,如要將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 的加密 SAML 宣告
如要讓 SAML 2.0 IdP 產生加密的 SAML 聲明,並讓工作團隊身分聯盟接受這些聲明,請按照下列步驟操作:
- 在員工身分聯盟中,請執行下列操作:
- 為工作團隊身分集區提供者建立非對稱金鑰組。
- 下載內含公開金鑰的憑證檔案。
- 將 SAML IdP 設為使用公開金鑰,加密發出的 SAML 聲明。
- 在 IdP 中執行下列操作:
- 啟用斷言加密,也稱為權杖加密。
- 上傳您在員工身分聯盟中建立的公開金鑰。
- 確認 IdP 會產生加密的 SAML 斷言。
建立員工身分聯盟 SAML 聲明加密金鑰
本節將逐步說明如何建立非對稱金鑰組,讓工作團隊身分聯盟接受加密的 SAML 聲明。
Google Cloud 會使用私密金鑰解密 IdP 發出的 SAML 聲明。如要建立非對稱金鑰組以用於 SAML 加密,請執行下列指令。詳情請參閱「支援的 SAML 加密演算法」。
gcloud iam workforce-pools providers keys create KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider WORKFORCE_PROVIDER_ID \ --location global \ --use encryption \ --spec KEY_SPECIFICATION
取代下列內容:
KEY_ID
:您選擇的鍵名WORKFORCE_POOL_ID
:集區 IDWORKFORCE_PROVIDER_ID
:工作團隊身分集區供應商 ID-
KEY_SPECIFICATION
:金鑰規格,可以是rsa-2048
、rsa-3072
和rsa-4096
其中之一。
建立金鑰組後,請執行下列指令,將公開金鑰下載到憑證檔案。只有員工身分聯盟可以存取私密金鑰。
gcloud iam workforce-pools providers keys describe KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider WORKFORCE_PROVIDER_ID \ --location global \ --format "value(keyData.key)" \ > CERTIFICATE_PATH
取代下列內容:
KEY_ID
:金鑰名稱WORKFORCE_POOL_ID
:集區 IDWORKFORCE_PROVIDER_ID
:工作團隊身分集區供應商 IDCERTIFICATE_PATH
:要寫入憑證的路徑,例如saml-certificate.cer
或saml-certificate.pem
設定符合 SAML 2.0 規範的 IdP,發布加密的 SAML 聲明
如要設定 Microsoft Entra ID 加密 SAML 權杖,請參閱「設定 Azure Active Directory SAML 權杖加密」。
將 IdP 設定為加密 SAML 判斷後,建議您檢查 IdP 產生的判斷是否確實經過加密。即使已設定 SAML 聲明加密,員工身分聯盟仍可處理明文聲明。
刪除員工身分聯盟加密金鑰
如要刪除 SAML 加密金鑰,請執行下列指令:gcloud iam workforce-pools providers keys delete KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider WORKFORCE_PROVIDER_ID \ --location global
取代下列內容:
KEY_ID
:金鑰名稱WORKFORCE_POOL_ID
:集區 IDWORKFORCE_PROVIDER_ID
:工作團隊身分集區供應商 ID
支援的 SAML 加密演算法
員工身分聯盟支援下列金鑰傳輸演算法:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
員工身分聯盟支援下列區塊加密演算法:
控制台
如要使用 Google Cloud 控制台設定 SAML 提供者,請按照下列步驟操作:
前往 Google Cloud 控制台的「Workforce Identity Pools」頁面:
在「Workforce Identity Pools」(工作團隊身分集區) 表格中,選取要建立提供者的集區。
在「供應商」表格中,按一下「新增供應商」。
在「選取通訊協定」中,選取「SAML」。
在「建立集區提供者」中,執行下列操作:
在「名稱」部分,輸入供應商名稱。
選用:在「說明」中輸入供應商說明。
在「IdP 中繼資料檔案 (XML)」中,選取您在本指南稍早產生的中繼資料 XML 檔案。
確認已啟用「Enabled provider」(已啟用供應商)。
按一下「繼續」。
在「設定供應商」中,執行下列操作:
在「屬性對應」中,輸入
google.subject
的 CEL 運算式。選用:如要輸入其他對應,請按一下「新增對應」,然後輸入其他對應,例如:
這個範例會將 IdP 屬性google.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
、assertion.attributes['https://example.com/aliases']
和assertion.attributes.costcenter[0]
分別對應至 Google Cloud屬性google.subject
、google.groups
和google.costcenter
。選用:如要新增屬性條件,請按一下「新增條件」,然後輸入代表屬性條件的 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
旗標。如要停用詳細稽核記錄,您也可以更新供應商。
如要建立提供者,請按一下「提交」。
管理 Google Cloud 資源存取權
本節提供範例,說明如何讓員工身分聯盟使用者管理Google Cloud 資源的存取權。
在本範例中,您會授予範例專案的 Identity and Access Management (IAM) 角色。使用者即可登入並使用這個專案存取 Google Cloud 產品。
您可以管理單一身分、身分群組或整個集區的身分與存取權管理角色。詳情請參閱「在 IAM 政策中代表員工身分集區使用者」。
使用對應群組
如要將「Storage 管理員」角色 (roles/storage.admin
) 授予群組 GROUP_ID
內的所有身分,請針對專案 TEST_PROJECT_ID
執行下列指令:
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
更改下列內容:
TEST_PROJECT_ID
:測試專案 IDWORKFORCE_POOL_ID
:工作團隊身分集區 IDGROUP_ID
:對應的google.groups
聲明中的群組。
單一身分
如要為專案 TEST_PROJECT_ID
的單一身分授予「Storage 管理員」roles/storage.admin
角色,請執行下列指令:
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
更改下列內容:
TEST_PROJECT_ID
:測試專案 IDWORKFORCE_POOL_ID
:工作團隊身分集區 IDSUBJECT_VALUE
:使用者身分
使用對應的部門屬性
如要將「Storage 管理員」角色 (roles/storage.admin
) 授予特定部門中專案 TEST_PROJECT_ID
的所有身分,請執行下列指令:
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/attribute.department/DEPARTMENT_VALUE"
更改下列內容:
TEST_PROJECT_ID
:測試專案 IDWORKFORCE_POOL_ID
:工作團隊身分集區 IDDEPARTMENT_VALUE
:對應的attribute.department
值
登入並測試存取權
在本節中,您會以工作團隊身分集區使用者身分登入,並測試您是否能存取 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,請執行下列操作:
建立設定檔
如要建立登入設定檔,請執行下列指令。您可以視需要新增 --activate
標記,將檔案設為 gcloud CLI 的預設設定。這樣一來,您之後執行 gcloud auth login
時,就不必每次都指定設定檔路徑。
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \ --output-file=LOGIN_CONFIG_FILE_PATH
更改下列內容:
WORKFORCE_POOL_ID
:工作團隊集區 IDPROVIDER_ID
:供應商 IDLOGIN_CONFIG_FILE_PATH
:您指定的設定檔路徑,例如login.json
這個檔案包含 gcloud CLI 用來啟用瀏覽器式驗證流程的端點,並將目標對象設為工作團隊身分集區提供者中設定的 IdP。檔案不含機密資訊。
輸出看起來類似以下內容:
{ "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://googleapis.com/v1/introspect", }
如要停止讓
gcloud auth login
自動使用這個設定檔,可以執行 gcloud config unset auth/login_config_file
取消設定。
使用瀏覽器驗證登入
如要使用瀏覽器型登入驗證進行驗證,可以採用下列其中一種方法:
-
如果您在建立設定檔時使用
--activate
標記,或使用gcloud config set auth/login_config_file
啟用設定檔,gcloud CLI 會自動使用您的設定檔:gcloud auth login
-
如要指定設定檔位置來登入,請執行下列指令:
gcloud auth login --login-config=LOGIN_CONFIG_FILE_PATH
-
如要使用環境變數指定設定檔位置,請將
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
設為設定路徑。
停用瀏覽器登入
如要停止使用登入設定檔,請按照下列步驟操作:
-
如果您在建立設定檔時使用了
--activate
旗標,或是使用gcloud config set auth/login_config_file
啟用了設定檔,則必須執行下列指令來取消設定:gcloud config unset auth/login_config_file
-
清除
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
環境變數 (如果已設定)。
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" }
如要使用 Workforce Identity Federation 權杖交換登入 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 Admin 角色 (roles/storage.admin
) 授予 TEST_PROJECT_ID
專案 gcloud projects add-iam-policy-binding
中指定群組 ID 內的所有身分。
現在您可以列出 Cloud Storage 值區,測試自己是否具備存取權。
主控台 (已聯邦)
如要使用控制台 (已聯合) 測試存取權,請按照下列步驟操作:
前往 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中明確刪除這些資源。如要這麼做,請參閱「刪除 Workforce Identity Federation 使用者及其資料」。
您可能會發現資源仍與已刪除的使用者相關聯。 這是因為刪除使用者中繼資料和資源需要長時間執行的作業。啟動刪除使用者身分識別程序後,使用者在刪除前啟動的程序會繼續執行,直到完成或取消為止。
後續步驟
- 刪除 Workforce Identity Federation 使用者及其資料
- 瞭解 Google Cloud 支援員工身分聯盟的產品
- 設定使用者對控制台 (聯合) 的存取權