本指南說明如何使用 Okta 做為身分識別提供者 (IdP) 設定員工身分聯盟、管理存取權,以及讓使用者登入存取Google Cloud 支援員工身分聯盟的服務。
事前準備
- 確認您已設定 Google Cloud 組織。
-
安裝 Google Cloud CLI。 安裝完成後,請執行下列指令,初始化 Google Cloud CLI:
gcloud init如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- 如要登入,IdP 必須提供已簽署的驗證資訊:OIDC IdP 必須提供 JWT,且 SAML IdP 回應必須經過簽署。
- 如要接收貴機構或Google Cloud 產品異動的重要資訊,請務必提供必要聯絡人。詳情請參閱「員工身分聯盟總覽」。
費用
員工身分聯盟是免付費功能。不過,員工身分聯盟詳細稽核記錄會使用 Cloud Logging。如要瞭解 Logging 定價,請參閱「Google Cloud Observability 定價」。
必要的角色
如要取得設定員工身分聯盟所需的權限,請要求管理員授予您組織的 IAM 工作團隊集區管理員 (roles/iam.workforcePoolAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
或者,IAM 擁有者 (roles/owner) 基本角色也包含設定員工身分聯盟的權限。請勿在正式環境中授予基本角色,但可以在開發或測試環境中授予。
建立員工身分集區
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 在 Google Cloud的所有工作團隊身分集區中,不得重複。如要瞭解如何設定 ID 格式,請參閱 API 說明文件的「查詢參數」一節。ORGANIZATION_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」(員工身分集區) 頁面:
選取員工身分集區的機構。員工身分集區適用於組織中的所有專案和資料夾。
按一下「Create pool」(建立集區),然後執行下列操作:
在「Name」(名稱) 欄位中,輸入集區的顯示名稱。集區 ID 會在您輸入名稱時自動衍生,並顯示在「Name」(名稱) 欄位下方。如要更新集區 ID,請按一下集區 ID 旁的「Edit」(編輯)。
選用:在「Description」(說明) 中輸入集區說明。
如要建立員工身分集區,請按「Next」(下一步)。
員工身分集區的工作階段持續時間預設為一小時 (3600 秒)。工作階段持續時間決定了 Google Cloud 存取權杖、控制台 (聯盟) 以及這個員工集區的 gcloud CLI 登入工作階段的有效時間。建立集區後,您可以更新集區,設定自訂工作階段持續時間。工作階段持續時間必須介於 15 分鐘 (900 秒) 至 12 小時 (43,200 秒) 之間。
建立 Okta 應用程式整合
本節說明如何使用 Okta 管理控制台建立 Okta 應用程式整合服務。詳情請參閱「建立自訂應用程式整合」。
員工身分集區支援使用 OIDC 和 SAML 通訊協定的聯合。
詳情請參閱 OIDC 和 SAML 的整合說明文件。本節將說明基本設定。
使用應用程式目錄的 OIDC
如要使用 OIDC 通訊協定,從應用程式目錄建立 Okta 應用程式整合,請按照下列步驟操作:
- 登入 Okta 管理控制台。
- 依序前往「Applications」 > 「Applications」。
- 按一下「Browse App Catalog」(瀏覽應用程式目錄)。
- 在「Search」欄位中輸入 Google Cloud Workforce Identity Federation,然後從結果中選取「Google Cloud Workforce Identity Federation integration」。
- 按一下「Add Integration」。
- 在「Application label」欄位中輸入應用程式名稱。
- 在「Workforce Pool」(工作團隊集區) 欄位中,輸入從 gcloud CLI 取得的工作團隊集區名稱。
在「Provider」(供應商) 欄位中,輸入供應商名稱。
點選「下一步」。
選取「OpenID Connect」選項。
按一下「完成」。
OIDC
如要建立使用 OIDC 通訊協定的 Okta 應用程式整合服務,請按照下列步驟操作:
- 登入 Okta 管理控制台。
- 依序前往「Applications」 > 「Applications」。
如要開始設定應用程式整合,請按照下列步驟操作:
- 按一下「Create App Integration」(建立應用程式整合)。
- 在「登入方式」部分,選取「OIDC - OpenID Connect」。
- 在「Application type」(應用程式類型) 中,選取應用程式類型,例如「Web Application」(網頁應用程式)。
- 如要建立應用程式,請按「Next」(下一步)。
- 在「應用程式整合名稱」中,輸入應用程式名稱。
- 在「Grant type」(授權類型) 部分,勾選「Implicit (hybrid)」(隱含 (混合)) 核取方塊。
在「Sign-in redirect URIs」(登入重新導向 URI) 區段的文字欄位中,輸入重新導向網址。使用者成功登入後,系統會將他們重新導向至這個網址。如要設定控制台 (聯盟) 的存取權,請使用下列網址格式:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID更改下列內容:
WORKFORCE_POOL_ID:您在本指南中稍早建立的員工集區 ID。WORKFORCE_PROVIDER_ID:您選擇的員工身分提供者 ID,例如okta-oidc-provider。如要瞭解如何設定 ID 格式,請參閱 API 說明文件的「查詢參數」一節。
勾選「暫時略過群組指派」核取方塊。
如要儲存應用程式整合,請按一下「儲存」。
選用:如要為 Okta 使用者個人資料新增自訂屬性,請按照下列步驟操作:
- 在「Data Type」(資料類型) 中,選取「
string」。 - 在「Display name」(顯示名稱) 中輸入
Department。 - 在「Variable name」(變數名稱) 中輸入
department。 - 如要儲存對應,請按一下「儲存」。
如要進一步瞭解如何新增自訂屬性,請參閱「在 Okta 使用者個人資料中新增自訂屬性」。
- 在「Data Type」(資料類型) 中,選取「
選用:如要為 OIDC 權杖中傳送的屬性建立對應,請在「目錄」中按一下「設定檔編輯器」,然後執行下列操作:
- 找出您在本指南中稍早建立的 OIDC 應用程式。
- 按一下「Mappings」(對應)。
- 選取「Okta User to App」分頁標籤。
- 在「Okta User User Profile」(Okta 使用者個人資料) 分頁中,在可用的下拉式方塊中輸入
department。Okta 會自動補全為user.department。 - 如要儲存對應,請按一下「Save Mappings」(儲存對應)。詳情請參閱「新增屬性對應」。
如要進一步瞭解對應,請參閱「在設定檔編輯器中將 Okta 屬性對應至應用程式屬性」。
選用:如要設定群組聲明,請按照下列步驟操作:
如果您使用組織授權伺服器,請執行下列操作:
- 依序前往「應用程式」>「應用程式」
- 選取您在本節稍早建立的 OpenID Connect 用戶端應用程式。
- 前往「Sign On」分頁
- 在「OpenID Connect ID 權杖」部分,按一下「Edit」。
- 在「群組聲明類型」部分,你可以選取下列任一選項:
- 選取「運算式」。
- 選取「與規則運算式相符」,然後輸入
.*。
- 如要儲存群組要求,請按一下「Save」(儲存)。
如要讓使用者透過控制台 (聯合) 或 gcloud CLI 瀏覽器登入流程登入,請在建立員工身分集區提供者時,按照本文後續步驟操作:
請務必使用 gcloud CLI 指令,以便使用
--web-sso-additional-scopes旗標。建立工作團隊身分集區提供者時,請在
--web-sso-additional-scopes中傳遞groups做為額外範圍。這樣做會在登入期間,向 Okta 要求群組憑證附加資訊。
如果您使用自訂授權伺服器,請執行下列操作:
- 在管理控制台的「安全性」選單中,選取「API」。
- 選取要設定的自訂授權伺服器。
- 前往「著作權聲明」分頁,然後按一下「新增著作權聲明」。
- 輸入著作權聲明名稱。在本例中,請命名為
groups。 - 在聲明中,選取「Include in token type」(納入權杖類型) ,然後選取「ID Token」(ID 權杖) 並選取「Always」(一律) 。
- 選取「群組」做為「值類型」。
- 在「篩選器」下拉式方塊中,選取「與規則運算式相符」,然後在「值」欄位輸入下列運算式:
.* - 點選「建立」。
如要進一步瞭解群組聲明,請參閱「新增群組聲明」。
SAML
如要建立使用 SAML 通訊協定的 Okta 應用程式整合服務,請按照下列步驟操作:
- 登入 Okta 管理控制台。
- 依序前往「Applications」>「Applications」。
- 按一下「Browse App Catalog」(瀏覽應用程式目錄)。
- 在「Search」欄位中輸入 Google Cloud Workforce Identity Federation,然後從結果中選取「Google Cloud Workforce Identity Federation integration」。
- 按一下「Add Integration」。
- 在「Application label」欄位中輸入應用程式名稱。
- 在「Workforce Pool」(工作團隊集區) 欄位中,輸入從 gcloud CLI 取得的工作團隊集區名稱。
在「Provider」(供應商) 欄位中,輸入供應商名稱。
點選「下一步」。
選用:如要透過 IdP 啟動的登入流程,使用「嵌入連結」存取應用程式,請在「Default Relay State」中輸入
https://console.cloud.google/。選用:如要在 SAML 判斷中傳送自訂
department屬性,請展開「Attributes (Optional)」(屬性 (選用)) 部分,然後執行下列操作:- 在「Name」(名稱) 欄位中,輸入
department。 - 在「名稱格式」清單中,選取「未指定」。
- 從「Value」清單中選取「user.department」。設定完成後,您可以在 Google Cloud 中使用這些屬性建立存取管理政策,或在 attribute_condition 中使用。
- 在「Name」(名稱) 欄位中,輸入
選用:如要在 SAML 斷言中傳送使用者群組成員資格,請展開「Group Attribute Statements (optional)」(群組屬性陳述式 (選用)) 區段,然後執行下列操作:
- 在「Name」(名稱) 欄位中,輸入
groups。 - 在「名稱格式」清單中,選取「未指定」。
- 從「Filter」(篩選器) 清單中選取「Matches regex」(符合規則運算式),然後輸入
.*以納入所有群組,或選取「Starts with」(開頭為) 並輸入前置字元。
- 在「Name」(名稱) 欄位中,輸入
將顯示的「Metadata URL」中的內容下載到本機檔案。然後上傳至 Google Cloud 控制台。
按一下「完成」,即可完成建立應用程式。
建立工作團隊身分集區提供者
本節說明如何建立員工身分集區提供者,讓 IdP 使用者存取 Google Cloud。您可以將提供者設為使用 OIDC 或 SAML 通訊協定。
建立 OIDC 工作團隊身分集區提供者
如要使用 OIDC 通訊協定,為 Okta 應用程式整合服務建立工作團隊身分集區提供者,請按照下列步驟操作:
如要取得 Okta 應用程式整合項目的用戶端 ID,請按照下列步驟操作:
- 前往 Okta 應用程式整合。
- 按一下「一般」分頁標籤。
- 複製「用戶端 ID」欄位的內容。
如要為網頁式登入建立 OIDC 工作團隊身分集區提供者,請執行下列操作:
gcloud
代碼流程
在 Okta 中執行下列操作:
在「用戶端驗證」部分,選取「用戶端密鑰」。
在「Client Secrets」(用戶端密鑰) 表格中,找出密鑰並按一下 content_copy「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" \
--vendor-type="okta" \ --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,格式為開頭為https的有效 URI,例如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 瀏覽器登入;例如,如果使用 Okta 的組織授權伺服器,則使用groups向 Okta 要求群組宣告。ATTRIBUTE_MAPPING:屬性對應。 以下是屬性對應範例: 這個範例會將 OIDC 聲明中的 IdP 屬性google.subject=assertion.oid google.groups=assertion.groups, attribute.costcenter=assertion.costcenterassertion.oid、assertion.groups和assertion.costcenter分別對應至 Google Cloud 屬性google.subject、google.groups和attribute.costcenter。ATTRIBUTE_CONDITION:屬性條件,例如assertion.subject.endsWith('@example.com'),當先前對應的subject值包含結尾為@example.com的電子郵件地址時。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旗標。如要停用詳細稽核記錄,您也可以更新供應商。
--web-sso-assertion-claims-behavior旗標會控管屬性對應和屬性條件所用的assertion物件中,如何納入 OIDC 聲明。如果是授權碼流程 (--web-sso-response-type="code"),您可以將這個旗標設為下列其中一個值:-
merge-user-info-over-id-token-claims:將 OIDCUserInfo端點的聲明與 ID 權杖的聲明合併。如果兩者都包含相同的聲明名稱,系統會優先採用UserInfo聲明值。如果 IdP 從UserInfo端點傳回額外使用者屬性或群組聲明,請使用這個值。 -
only-id-token-claims:僅包含來自 ID 權杖的聲明。 如果屬性對應和條件所需的所有憑證資訊都已存在於 ID 權杖中,請使用這個值。
locations/global/workforcePools/enterprise-example-organization-employees。隱含流程
如要建立使用隱含流程進行網頁登入的 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" \
--vendor-type="okta" \ --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,格式為開頭為https的有效 URI,例如https://example.com/oidc。注意:基於安全考量,ISSUER_URI必須使用 HTTPS 通訊協定。OIDC_CLIENT_ID:向 OIDC IdP 註冊的 OIDC 用戶端 ID;該 ID 必須與 IdP 核發的 JWTaud宣告相符。WEB_SSO_ADDITIONAL_SCOPES:要傳送至 OIDC IdP 的選用額外範圍,適用於控制台 (已加入聯盟) 或 gcloud CLI 的瀏覽器型登入;舉例來說,如果使用 Okta 的機構授權伺服器,可以傳送groups向 Okta 要求群組聲明。ATTRIBUTE_MAPPING:屬性對應。 以下是屬性對應範例: 這個範例會將 OIDC 斷言中的 IdP 屬性google.subject=assertion.oid google.groups=assertion.groups, attribute.costcenter=assertion.costcenterassertion.oid、assertion.groups和assertion.costcenter分別對應至 Google Cloud 屬性google.subject、google.groups和attribute.costcenter。ATTRIBUTE_CONDITION:屬性條件;例如,當先前對應的subject值包含結尾為@example.com的電子郵件地址時,assertion.subject.endsWith('@example.com')。JWK_JSON_PATH:在本機上傳的 OIDC JWK 選用路徑。如果未提供這個參數, Google Cloud 會改用 IdP 的/.well-known/openid-configuration路徑,取得含有公開金鑰的 JWK。如要進一步瞭解本機上傳的 OIDC JWK,請參閱「管理 OIDC JWK」。-
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Cloud Logging。詳細稽核記錄可協助您排解工作團隊身分集區提供者設定的問題。如要瞭解如何透過詳細的稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱「Google Cloud Observability 定價」。
如要停用工作團隊身分集區提供者的詳細稽核記錄,請在執行
gcloud iam workforce-pools providers create時省略--detailed-audit-logging旗標。如要停用詳細稽核記錄,您也可以更新供應商。
如果是隱含流程 (
在指令回應中,POOL_RESOURCE_NAME 是集區的名稱,例如--web-sso-response-type="id-token"),您必須將--web-sso-assertion-claims-behavior旗標設為only-id-token-claims,其中只包含assertion物件中 ID 權杖的聲明。隱含流程不支援merge-user-info-over-id-token-claims值。locations/global/workforcePools/enterprise-example-organization-employees。控制台
代碼流程
如要建立使用授權碼流程的 OIDC 提供者,以供網頁登入,請按照下列步驟操作:
如要取得 Okta 用戶端密鑰,請按照下列步驟操作:
在「用戶端驗證」部分,選取「用戶端密鑰」。
在「Client Secrets」(用戶端密鑰) 表格中,找出密鑰並按一下 content_copy「Copy」(複製)。
- 前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面:
- 在「Workforce Identity Pools」(員工身分集區) 表格中,選取要建立提供者的集區。
- 在「Providers」部分,按一下「Add Provider」。
- 在「Select a Provider vendor」(選取提供者) 清單中,選取您的 IdP。
如果您的 IdP 未列出,請選取「Generic Identity Provider」。
- 在「選取驗證通訊協定」部分,選取「OpenID Connect (OIDC)」。
- 在「Create a provider」(建立提供者) 區段中,執行下列操作:
- 在「Name」中輸入供應商名稱。
- 在「說明」中,輸入提供者的說明。
- 在「Issuer (URL)」中輸入核發者 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 權杖:合併
UserInfo端點和 ID 權杖的憑證資訊,並優先採用UserInfo憑證資訊值 (如果憑證名稱相同)。如果 IdP 從UserInfo端點傳回額外使用者屬性或群組憑證附加資訊,請選取這個選項。 - 僅限 ID 權杖:僅包含 ID 權杖中的宣告。如果屬性對應和條件所需的所有要求都已存在於 ID 權杖中,請選取這個選項。
- 使用者資訊和 ID 權杖:合併
- 在「Client secret」(用戶端密鑰) 欄位中,輸入 IdP 的用戶端密鑰。
- 選用:如果您選取「Okta」做為 IdP,請在「openid、profile 和 email 以外的額外範圍」欄位中新增任何額外的 OIDC 範圍。
- 按一下「繼續」。
- 在「Configure provider」(設定供應商) 部分,按一下「Detailed logging」(詳細記錄) 下方的「Enable attribute value audit logging」(啟用屬性值稽核記錄) 切換鈕。
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄可協助您排解工作團隊身分集區提供者設定的問題。如要瞭解如何透過詳細的稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱「Google Cloud Observability 定價」。
如要停用員工身分集區提供者的詳細稽核記錄,請在建立提供者時,將「啟用屬性值稽核記錄」切換鈕設為關閉。如要停用詳細稽核記錄,您也可以更新供應商。
- 如要建立提供者,請按一下「提交」。
建立供應商後,系統會將您重新導向至供應商屬性頁面。
如要設定屬性對應和條件,請按照下列步驟操作:
- 系統提示時,請登入外部 IdP,驗證預設屬性對應。
- 在提供者屬性頁面中,查看及編輯屬性對應和條件:
- 如要新增或編輯屬性對應,請按照下列步驟操作:
- 按一下「新增對應」,即可新增對應或編輯現有對應。
- 在「Google n」欄位中 (n 為數字),選取支援的按鍵 Google Cloud。
- 在對應的「OIDC n」欄位中,輸入 IdP 屬性名稱或 CEL 運算式。
- 如要新增屬性條件,請按照下列步驟操作:
- 按一下「新增條件」。
- 在「Attribute Conditions」(屬性條件) 欄位中,以 CEL 格式輸入條件,例如
assertion.subject.endsWith('@example.com'),表示先前對應的subject值包含結尾為@example.com的電子郵件地址。
- 如要新增或編輯屬性對應,請按照下列步驟操作:
- 如要驗證對應關係,請按一下「Save and refetch token」(儲存並重新擷取權杖)。
- 如要完成設定,請按一下「儲存並結束」。
隱含流程
如要建立使用隱含流程進行網頁登入的 OIDC 供應商,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Workforce Identity Pools」(員工身分集區) 頁面:
- 在「Workforce Identity Pools」(員工身分集區) 表格中,選取要建立提供者的集區。
- 在「Providers」部分,按一下「 Add Provider」。
- 在「Select a Provider vendor」(選取提供者) 清單中,選取您的 IdP。
如果您的 IdP 未列出,請選取「Generic Identity Provider」。
- 在「選取驗證通訊協定」部分,選取「OpenID Connect (OIDC)」。
- 在「Create a provider」(建立提供者) 區段中,執行下列操作:
- 在「Name」中輸入供應商名稱。
- 在「說明」中,輸入提供者的說明。
- 在「Issuer (URL)」中輸入核發者 URI。OIDC 核發者 URI 必須採用有效的 URI 格式,且開頭為
https,例如https://example.com/oidc。 - 在「用戶端 ID」中,輸入向 OIDC IdP 註冊的 OIDC 用戶端 ID;這個 ID 必須與 IdP 發行的 JWT 的
aud聲明相符。 - 如要建立已啟用的提供者,請確認「啟用提供者」已開啟。
- 按一下「繼續」。
- 在「與 IdP 分享提供者資訊」部分,複製網址。在 IdP 中,將這個網址設為重新導向 URI,讓 IdP 瞭解登入後要將斷言權杖傳送至何處。
- 按一下「繼續」。
- 在「Configure OIDC Web Sign-in」(設定 OIDC 網頁登入) 部分,執行下列操作:
- 在「Flow type」(流程類型) 清單中,選取「ID Token」(ID 權杖)。
- 在「Assertion claims behavior」(判斷聲明行為) 清單中,選取「ID token」(ID 權杖)。
- 選用:如果您選取 Okta 做為 IdP,請在「openid、profile 和 email 以外的額外範圍」欄位中,新增任何額外的 OIDC 範圍。
- 按一下「繼續」。
- 在「Configure provider」(設定供應商) 部分的「Detailed logging」(詳細記錄) 中,按一下「Enable attribute value audit logging」(啟用屬性值稽核記錄) 切換鈕。
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄可協助您排解工作團隊身分集區提供者設定的問題。如要瞭解如何透過詳細的稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱「Google Cloud Observability 定價」。
如要停用員工身分集區提供者的詳細稽核記錄,請在建立提供者時,將「啟用屬性值稽核記錄」切換鈕設為關閉。如要停用詳細稽核記錄,您也可以更新供應商。
- 按一下「Submit」(提交),建立提供者。
建立供應商後,系統會將您重新導向至供應商屬性頁面。
如要設定屬性對應和條件,請按照下列步驟操作:
- 系統提示時,請登入外部 IdP,驗證預設屬性對應。
- 在提供者屬性頁面中,查看及編輯屬性對應和條件:
- 如要新增或編輯屬性對應,請按照下列步驟操作:
- 按一下「新增對應」新增對應,或編輯現有對應。
- 在「Google n」欄位中 (n 為數字),選取 Google Cloud支援的金鑰。
- 在對應的「OIDC n」欄位中,輸入 IdP 屬性名稱或 CEL 運算式。
- 如要新增屬性條件,請按照下列步驟操作:
- 按一下「新增條件」。
- 在「屬性條件」欄位中,以 CEL 格式輸入條件,例如:
assertion.subject.endsWith('@example.com')當先前對應的subject值包含結尾為@example.com的電子郵件地址時。
- 如要新增或編輯屬性對應,請按照下列步驟操作:
- 如要驗證對應,請按一下「儲存並重新擷取權杖」。
- 按一下「儲存並結束」,完成設定。
建立 SAML 工作團隊身分集區提供者
在 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
如要使用 SAML 通訊協定,為 Okta 應用程式整合建立員工身分集區提供者,請按照下列步驟操作:
如要儲存 Okta 應用程式的 SAML 中繼資料,請按照下列步驟操作:
- 前往 Okta 應用程式。
- 按一下「Sign On」分頁標籤。
- 在「SAML Signing Certificates」部分,依序點選有效憑證的「Actions」>「View IdP metadata」。
- 在新開啟的頁面中,複製 XML 中繼資料。
- 將中繼資料儲存為本機 XML 檔案。
如要為 Okta 應用程式建立工作團隊提供者,請執行下列指令:
gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \ --workforce-pool="WORKFORCE_POOL_ID" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --vendor-type="okta" \ --idp-metadata-path="XML_METADATA_PATH" \ --detailed-audit-logging \ --location="global"更改下列內容:
WORKFORCE_PROVIDER_ID:您在本指南稍早建立的工作團隊提供者 ID。WORKFORCE_POOL_ID:您在本指南稍早建立的員工身分集區 ID。ATTRIBUTE_MAPPING:屬性對應,例如:google.subject=assertion.subject, google.groups=assertion.attributes['groups'], attribute.department=assertion.attributes['department'][0]ATTRIBUTE_CONDITION:選用的屬性條件。 舉例來說,如要限制只有電子郵件地址結尾為@example.com的使用者才能登入,請按照下列步驟操作:assertion.subject.endsWith('@example.com')XML_METADATA_PATH:您在本指南稍早建立的 Okta 應用程式 XML 格式中繼資料檔案路徑。
前置字元
gcp-為保留字元,不得用於工作團隊身分集區或工作團隊身分集區提供者 ID。-
員工身分聯盟詳細稽核記錄會將從 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 聲明
如要設定 Okta 加密 SAML 斷言,請按照下列步驟操作:
- 前往 Okta 資訊主頁並登入。
- 依序前往「Applications」>「Applications」。
- 按一下應用程式。
- 在「General」分頁的「SAML Settings」部分,按一下「Edit」。
- 按一下「Next」,查看「SAML Settings」。
- 按一下 [顯示進階設定]。
- 在「SAML Settings」中,執行下列操作:
- 在「Response」(建議) 或「Assertion Signature」中,選取
Signed。 - 在「簽章演算法」和「摘要演算法」中,選取任一選項。
- 設定以下這些值:
- Assertion Encryption: Encrypted。
- 加密演算法:您選擇的任何演算法。
- 加密憑證:上傳您先前按照本指南產生的憑證檔案。
- 如要儲存設定,請依序點選「Next」和「Finish」。
將 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」(員工身分集區) 表格中,選取要建立提供者的集區。
- 在「Providers」部分,按一下「Add Provider」。
- 在「Select a Provider vendor」(選取提供者) 清單中,選取您的 IdP。
如果您的 IdP 未列出,請選取「Generic Identity Provider」。
- 在「選取驗證通訊協定」中,選取「SAML」。
- 在「建立供應商」部分,執行下列操作:
- 在「Name」中輸入供應商名稱。
- 選用:在「Description」(說明) 中輸入供應商說明。
- 在「IdP metadata file (XML)」中,選取您先前按照本指南產生的中繼資料 XML 檔案。
- 如要建立已啟用的供應商,請確認「啟用供應商」已開啟。
- 按一下「繼續」。
- 在「Share your provider information」部分,複製網址。在 IdP 中,將第一個網址設為實體 ID,以便向 IdP 識別應用程式。將其他網址設為重新導向 URI,讓 IdP 瞭解登入後要將斷言權杖傳送至何處。
- 按一下「繼續」。
- 在「設定供應商」部分的「詳細記錄」中,
按一下「啟用屬性值稽核記錄」切換鈕。
員工身分聯盟詳細稽核記錄會將從 IdP 收到的資訊記錄到 Logging。詳細稽核記錄可協助您排解工作團隊身分識別集區提供者設定問題。如要瞭解如何透過詳細的稽核記錄排解屬性對應錯誤,請參閱「一般屬性對應錯誤」。如要瞭解 Logging 定價,請參閱「Google Cloud Observability 定價」。
如要為工作團隊身分集區提供者停用詳細稽核記錄,請在建立提供者時,將「啟用屬性值稽核記錄」切換鈕設為關閉。如要停用詳細稽核記錄,您也可以更新供應商。
- 按一下「Submit」(提交),建立提供者。
建立供應商後,系統會將您重新導向至供應商屬性頁面。
如要設定屬性對應和條件,請按照下列步驟操作:
- 系統提示時,請登入外部 IdP,驗證預設屬性對應。
- 在提供者屬性頁面中,查看及編輯屬性對應和條件:
- 如要新增或編輯屬性對應,請按照下列步驟操作:
- 按一下「Add mapping」(新增對應) 即可新增對應,或編輯現有對應。
- 在「Google n」欄位中 (n 為數字), 選取 Google Cloud 支援的鍵。
- 在對應的 「SAML n」欄位中,輸入 IdP 屬性名稱或 CEL 運算式,例如:
google.subject=assertion.subject, google.groups=assertion.attributes['groups'], attribute.department=assertion.attributes['department'][0]
- 如要新增屬性條件,請按照下列步驟操作:
- 按一下「新增條件」。
- 在「屬性條件」欄位中,以 CEL 格式輸入條件,例如:
舉例來說,如要限制只有電子郵件地址結尾為
@example.com的使用者可以登入,請輸入: 。assertion.subject.endsWith('@example.com')
- 如要新增或編輯屬性對應,請按照下列步驟操作:
- 如要驗證對應,請按一下「儲存並重新擷取權杖」。
- 按一下「儲存並結束」,完成設定。
驗證供應商設定
測試使用者登入流程前,請先確認提供者設定正確無誤,且 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。
「Validate your provider attributes」(驗證提供者屬性) 頁面會顯示對應的屬性和屬性條件結果。
「IdP 權杖中的對應屬性」部分會顯示 Google 屬性 (例如 google.subject) 如何根據對應設定,從 IdP 權杖填入。如果對應不正確,系統會顯示錯誤圖示。
「Attribute condition」(屬性條件) 區段會顯示條件的布林值結果。如果條件評估結果為 false,系統就會封鎖登入。
如要查看完整斷言權杖,請點選「查看完整權杖」。這會顯示 IdP 的原始 JSON 物件。請使用 assertion.PROPERTY_NAME 格式,在對應中參照頂層屬性。
編輯提供者設定
如要修正錯誤,請編輯設定:
- 在「驗證提供者屬性」頁面,按一下「 編輯」。
- 進行必要變更。
- 如要開始新的測試並查看更新後的結果,請按一下「Save and refetch token」(儲存並重新擷取權杖)。
管理 Google Cloud 資源的存取權
本節提供範例,說明如何管理員工身分聯盟使用者對Google Cloud 資源的存取權。
在本範例中,您將在範例專案中授予 Identity and Access Management (IAM) 角色。使用者可以登入並透過這項專案存取Google Cloud 產品。
您可以管理單一身分、身分群組或整個集區的 IAM 角色。詳情請參閱「允許政策的員工主體 ID」。
Google Cloud單一身分
如要將 Storage 管理員 (roles/storage.admin) 角色授予專案 TEST_PROJECT_ID 的單一身分,請執行下列指令:
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值
使用對應群組
如要為專案 TEST_PROJECT_ID 中特定群組的所有身分授予「Storage 管理員」(roles/storage.admin) 角色,請執行下列指令:
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聲明中的群組。
登入並測試存取權
在本節中,您將以員工身分集區使用者身分登入,並測試是否能存取 Google Cloud 產品。
登入
本節說明如何以聯合身分使用者身分登入,並存取Google Cloud 資源。
透過瀏覽器登入 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,請按照下列步驟操作:
OIDC
讓使用者登入 Okta 應用程式,並從 Okta 取得 OIDC 權杖。
將 Okta 傳回的 OIDC 權杖儲存在本機電腦的安全位置。
如要產生設定檔 (如本步驟稍後的範例所示),請執行下列指令:
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:員工身分集區 IDWORKFORCE_PROVIDER_ID:供應商 IDPATH_TO_OIDC_TOKEN:OIDC IdP 憑證檔案的路徑WORKFORCE_POOL_USER_PROJECT:與工作團隊集區使用者專案相關聯的專案編號
主體必須具備這項專案的 serviceusage.services.use 權限。
執行指令後,系統會產生 OIDC IdP 設定檔,格式大致如下:
{
"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_FILE"
}
}
SAML
讓使用者登入 Okta 應用程式,並從 Okta 取得 SAML 回應。
將 Okta 傳回的 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:您在本指南稍早建立的工作團隊提供者 ID。WORKFORCE_POOL_ID:您在本指南稍早建立的員工身分集區 ID。SAML_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,請執行下列指令:
gcloud auth login --cred-file="config.json"
gcloud 接著會以透明方式將您的 Okta 憑證交換為暫時Google Cloud 存取權杖,讓您能對 Google Cloud進行其他 gcloud 呼叫。
畫面會顯示類似以下內容的輸出:
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 員工身分聯盟控制台 (又稱聯合控制台),請按照下列步驟操作:
測試存取權
您現在可以存取支援員工身分聯盟的 Google Cloud 服務,前提是您已獲得存取權。在本指南稍早的內容中,您已將「儲存空間管理員」(roles/storage.admin) 角色授予特定部門內的所有身分,以存取專案 TEST_PROJECT_ID。現在可以列出 Cloud Storage bucket,測試是否具備存取權。
gcloud CLI
如要列出您有權存取的專案 Cloud Storage bucket 和物件,請執行下列指令:
gcloud storage ls --project="TEST_PROJECT_ID"
主體必須具備指定專案的 serviceusage.services.use 權限。
控制台 (聯合)
如要使用控制台 (已同盟) 列出 Cloud Storage bucket,請執行下列操作:
- 前往「Cloud Storage」頁面。
- 確認您可以看到
TEST_PROJECT_ID的現有 bucket 清單
刪除使用者
員工身分聯盟會為聯合使用者身分建立使用者中繼資料和資源。如果您選擇刪除 IdP 中的使用者,也必須在 Google Cloud中明確刪除這些資源。如要這麼做,請參閱「刪除員工身分聯盟使用者及其資料」。
如要立即終止使用者的有效工作階段,可以撤銷工作階段。詳情請參閱「撤銷員工身分聯盟使用者工作階段」。您可能會發現資源仍與已刪除的使用者相關聯。 這是因為刪除使用者中繼資料和資源需要長時間執行的作業。在您啟動刪除使用者身分的程序後,使用者在刪除前啟動的程序可以繼續執行,直到程序完成或取消為止。
後續步驟
- 在 Okta 中設定 SCIM。
- 刪除員工身分聯盟使用者及其資料。
- 撤銷員工身分聯盟使用者工作階段。
- 瞭解哪些 Google Cloud 產品支援員工身分聯盟。
- 設定使用者對控制台的存取權 (聯合)。