本頁面說明如何將 Google Distributed Cloud (GDC) 實體隔離方案,連結至貴組織現有的識別資訊提供者 (IdP)。IdP 是集中管理及保護使用者身分的系統,提供驗證服務。連結至現有 IdP 後,使用者就能使用組織的憑證存取 GDC,不必在 GDC 內建立或管理個別帳戶。這個程序可確保登入體驗流暢安全。由於 IdP 是全域資源,因此無論使用者在哪個可用區工作,都能透過同一個 IdP 存取 GDC。
本頁面適用於平台管理員群組中的對象,例如 IT 管理員或資安工程師,他們想要連線至 IdP。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。
您可以使用下列其中一種方式,連結至現有的識別資訊提供者:
事前準備
連結至現有的識別資訊提供者前,請務必完成初始設定、要求必要權限,並準備好環境。
初始識別資訊提供者連線設定
貴組織基礎架構操作員群組的成員必須先設定初始 IdP 連線,使用者才能存取 GDC 叢集或資訊主頁。
他們可以在 支援單處理系統 中建立支援單,並提供必要的識別資訊提供者資訊。詳情請參閱「將客戶識別資訊提供者連結至組織」。
要求 IAM 角色
如要建立、讀取、更新及刪除識別資訊提供者設定,請與 IAM 機構組織管理員聯絡,要求取得身分提供者聯盟管理員 (idp-federation-admin) 角色。
連結識別資訊提供者時,請確認您指定的初始管理員具備 IAM 機構組織管理員 (organization-iam-admin) 角色。
準備環境
產生 kubeconfig,設定
kubectl存取權。
連線至現有的識別資訊提供者
如要連結識別資訊提供者,您必須擁有該提供者的單一用戶端 ID 和密鑰。您可以連結至現有的 OIDC 或 SAML 供應商。
連線至現有的 OIDC 提供者
如要連結至現有的 OIDC 供應商,請完成下列步驟:
控制台
- 登入 GDC 控制台。以下範例顯示登入名為
org-1的組織後,主控台的畫面:
- 在導覽選單中,依序點選「Identity and Access」>「Identity」。
- 按一下「Add Identity Provider」。
在「Configure identity provider」(設定識別資訊提供者) 部分,完成下列步驟:
- 在「Identity provider」(識別資訊提供者) 下拉式選單中,選取「Open ID Connect (OIDC)」。
- 輸入「Identity provider name」。
- 在「Issuer URI」(核發者 URI) 欄位中,輸入授權要求傳送至識別資訊提供者的網址。Kubernetes API 伺服器會使用這個網址,尋找用於驗證權杖的公開金鑰。網址必須使用 HTTPS。
- 在「Client ID」(用戶端 ID) 欄位中,輸入向識別資訊提供者提出驗證要求的用戶端應用程式 ID。
- 在「Client Secret」(用戶端密鑰) 欄位中,輸入用戶端密鑰,這是識別資訊提供者與 Distributed Cloud 之間共用的密鑰。
選用:在「Identity provider prefix」(識別資訊提供者前置字元) 欄位中輸入前置字元。這個前置字串會加在使用者和群組要求開頭。前置字串用於區分不同的識別資訊提供者設定。舉例來說,如果您將前置字串設為
myidp,使用者要求可能是myidp-username@example.com,群組要求可能是myidp-group@example.com。將角色式存取控管 (RBAC) 權限指派給群組時,也必須包含前置字串。選用:在「Encryption」(加密) 部分,選取「Enable encryption tokens」(啟用加密權杖)。
如要啟用加密權杖,請要求 IAM 機構組織管理員授予您 IdP 聯合管理員 (
idp-federation-admin) 角色。- 在「Key ID」欄位中輸入金鑰 ID。金鑰 ID 會識別 JSON 網頁加密 (JWE) 權杖的公開金鑰。OIDC 提供者會設定及佈建金鑰 ID。
- 在「Decryption key」(解密金鑰) 欄位中,輸入 PEM 格式的解密金鑰。解密金鑰是非對稱式金鑰,用於解密權杖。OIDC 供應商會設定及佈建解密金鑰。
點選「下一步」。
在「設定屬性」部分,完成下列步驟:
- 在「Certificate authority for OIDC provider」(OIDC 供應商的憑證授權單位) 欄位中,輸入識別資訊提供者的 PEM 編碼憑證 (採用 Base64 編碼)。詳情請參閱維基百科的「隱私強化郵件」一文。
- 如要建立字串,請將憑證 (包含標頭) 的編碼方式改為
base64格式, - 並把產生的字串另列一行。範例:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
- 如要建立字串,請將憑證 (包含標頭) 的編碼方式改為
- 在「Group Claim」(群組聲明) 欄位中,輸入識別資訊提供者權杖中含有使用者群組資訊的聲明名稱。
- 在「User Claim」欄位中,輸入用於識別每位使用者的要求。許多供應商的預設宣告為
sub。視識別資訊提供者而定,您可以選擇其他憑證附加資訊,例如email或name。email以外的憑證附加資訊會加上核發者網址前置字元,以免名稱衝突。 - 選用:在「Custom attributes」(自訂屬性) 區段中,按一下「Add Pair」(新增組合),然後輸入鍵/值組合,提供使用者的其他聲明,例如部門或個人資料相片網址。
- 如果識別資訊提供者需要額外的範圍,請在「Scopes」(範圍) 欄位中輸入要傳送至識別資訊提供者的範圍,並以半形逗號分隔。
- 在「Extra parameters」(額外參數) 區段中,輸入識別資訊提供者所需的任何其他鍵/值組合 (以半形逗號分隔)。如要授權群組,請傳入
resource=token-groups-claim。 - 按一下「下一步」。
- 在「Certificate authority for OIDC provider」(OIDC 供應商的憑證授權單位) 欄位中,輸入識別資訊提供者的 PEM 編碼憑證 (採用 Base64 編碼)。詳情請參閱維基百科的「隱私強化郵件」一文。
在「Specify initial admins」部分,完成下列步驟:
- 選擇要新增個別使用者或群組做為初始管理員。
- 在「Username or group alias」(使用者名稱或群組別名) 欄位中,輸入要存取組織的使用者或群組電子郵件地址。如果您是管理員,請輸入您的電子郵件地址,例如
kiran@example.com。前置字串會加在使用者名稱前面,例如myidp-kiran@example.com。 - 點選「下一步」。
檢查所選項目,然後按一下「設定」。
新的識別資訊提供者設定檔會顯示在「識別資訊設定檔」清單中。
API
如要將識別資訊提供者連結至組織,請建立全域 IdentityProviderConfig 自訂資源。
建立
IdentityProviderConfig自訂資源 YAML 檔案,例如pa-idp-oidc.yaml:apiVersion: iam.global.gdc.goog/v1 kind: IdentityProviderConfig metadata: name: pa-idp-oidc namespace: platform spec: oidc: certificateAuthorityData: "IDP_BASE64_ENCODED_CERTIFICATE" clientID: IDP_CLIENT_ID clientSecret: IDP_CLIENT_SECRET groupPrefix: IDP_GROUP_PREFIX groupsClaim: IDP_GROUP_CLAIM issuerURI: IDP_ISSUER_URI scopes: openid,email,profile userClaim: IDP_USER_CLAIM userPrefix: IDP_USER_PREFIX請替換下列變數:
IDP_BASE64_ENCODED_CERTIFICATE:IdP 的 base64 編碼憑證。IDP_CLIENT_ID:IdP 的用戶端 ID。IDP_CLIENT_SECRET:IdP 的用戶端密鑰。IDP_GROUP_PREFIX:IdP 中群組的前置字串。IDP_GROUP_CLAIM:IdP 權杖中將資訊分組的憑證名稱。IDP_ISSUER_URI:IdP 的核發者 URI。IDP_USER_CLAIM:使用者 IdP 權杖中的要求名稱。IDP_USER_PREFIX:使用者 IdP 的前置字串。
將
IdentityProviderConfig自訂資源套用至全域 API 伺服器:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f pa-idp-oidc.yaml將
GLOBAL_API_SERVER_KUBECONFIG變數替換為全域 API 伺服器的 kubeconfig 檔案路徑。
連線至現有的 SAML 供應商
如要連結至現有的 SAML 供應商,請完成下列步驟:
控制台
- 登入 GDC 控制台。以下範例顯示登入名為
org-1的組織後,主控台的畫面:
- 在導覽選單中,依序點選「Identity and Access」>「Identity」。
- 按一下「Add Identity Provider」。
在「Configure identity provider」(設定識別資訊提供者) 部分,完成下列步驟:
- 在「Identity provider」(識別資訊提供者) 下拉式選單中,選取「Security Assertion Markup Language (SAML)」(安全宣告標記語言 (SAML))。
- 輸入識別資訊提供者名稱。
- 在「Identity ID」(身分 ID) 欄位中,輸入向身分提供者提出驗證要求的用戶端應用程式 ID。
- 在「SSO URI」欄位中,輸入供應商單一登入端點的網址。例如:
https://www.idp.com/saml/sso。 在「Identity provider prefix」(識別資訊提供者前置字元) 欄位中輸入前置字元。這個前置字串會加到使用者和群組憑證的開頭。前置字串可用來區分不同的識別資訊提供者設定。舉例來說,如果您將前置字串設為
myidp,使用者要求可能會顯示為myidp-username@example.com,群組要求則可能顯示為myidp-group@example.com。將 RBAC 權限指派給群組時,也必須加上前置字串。為提高安全性,請將 SAML 供應商設定為核發效期為 5 到 10 分鐘的斷言。這項設定可在 SAML 供應商的設定中調整。
選用:在「SAML Assertions」(SAML 宣告) 部分,選取「Enable encryption SAML assertions」(啟用加密 SAML 宣告)。
如要啟用加密 SAML 斷言,請要求 IAM 機構組織管理員授予您 IdP 聯盟管理員 (
idp-federation-admin) 角色。- 在「Encryption assertion certificate」(加密斷言憑證) 欄位中,輸入 PEM 格式的加密憑證。您可以向 SAML 供應商取得加密憑證。
- 在「Encryption assertion key」(加密斷言金鑰) 欄位中輸入私密金鑰。產生 SAML 供應商後,您會收到解密金鑰。
選用:在「SAML Signed Requests」(SAML 經簽署的要求) 部分,選取「Enable signed SAML requests」(啟用經簽署的 SAML 要求)。
- 在「Signing certificate」(簽署憑證) 欄位中,輸入 PEM 檔案格式的簽署憑證。SAML 供應商會核發簽署憑證。
- 在「Signing key」(簽署金鑰) 欄位中,輸入 PEM 檔案格式的簽署金鑰。SAML 供應商會設定並產生簽署金鑰。
點選「下一步」。
在「Configure attributes」頁面中,完成下列步驟:
- 在「IDP certificate」(IDP 憑證) 欄位中,輸入識別資訊提供者的 PEM 編碼憑證 (採用 Base64 編碼)。詳情請參閱維基百科的「隱私強化郵件」一文。
- 如要建立字串,請將憑證 (包含標頭) 的編碼方式改為
base64格式, - 並把產生的字串另列一行加入。例如
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==。
- 如要建立字串,請將憑證 (包含標頭) 的編碼方式改為
- 在「Additional IDP certificate」(其他 IdP 憑證) 欄位中輸入其他憑證。
- 在「User attribute」(使用者屬性) 欄位中,輸入用來識別每位使用者的屬性。許多供應商的預設屬性為
sub。視識別資訊提供者而定,您可以選擇其他屬性,例如email或name。email以外的屬性會加上核發者網址前置字元,以免名稱衝突。 - 在「Group attribute」(群組屬性) 欄位中,輸入識別資訊提供者權杖中保存使用者群組資訊的屬性名稱。
- 選用:在「Attribute mapping」(屬性對應) 部分,按一下「Add Pair」(新增組合),然後輸入使用者其他屬性的鍵/值組合,例如部門或個人資料相片網址。
- 按一下「下一步」。
- 在「IDP certificate」(IDP 憑證) 欄位中,輸入識別資訊提供者的 PEM 編碼憑證 (採用 Base64 編碼)。詳情請參閱維基百科的「隱私強化郵件」一文。
在「Specify initial admins」部分,完成下列步驟:
- 選擇要新增個別使用者或群組做為初始管理員。
- 在「Username or group alias」(使用者名稱或群組別名) 欄位中,輸入要存取組織的使用者或群組電子郵件地址。如果您是管理員,請輸入您的電子郵件地址,例如
kiran@example.com。前置字串會加在使用者名稱前面,例如myidp-kiran@example.com。 - 點選「下一步」。
在「Review」(審查) 頁面中,先檢查每個身分設定的所有值,再繼續操作。
按一下「Back」(返回),回到先前的頁面並進行必要修正。
點選 [設定]。
新的識別資訊提供者設定檔會顯示在「識別資訊設定檔」清單中。
API
如要將識別資訊提供者連結至組織,請建立全域 IdentityProviderConfig 自訂資源。
建立
IdentityProviderConfig自訂資源 YAML 檔案,例如pa-idp-saml.yaml:apiVersion: iam.global.gdc.goog/v1 kind: IdentityProviderConfig metadata: name: pa-idp-saml namespace: platform spec: saml: groupPrefix: IDP_GROUP_PREFIX groupsAttribute: IDP_GROUP_ATTRIBUTE idpCertificateDataList: - "IDP_BASE64_ENCODED_CERTIFICATE" idpEntityID: IDP_SAML_ENTITY_ID idpSingleSignOnURI: IDP_SAML_SSO_URI userAttribute: IDP_USER_ATTRIBUTE userPrefix: IDP_USER_PREFIX請替換下列變數:
IDP_GROUP_PREFIX:IdP 中群組的前置字串。IDP_GROUP_ATTRIBUTE:IdP 中群組的屬性。IDP_BASE64_ENCODED_CERTIFICATE:IdP 的 base64 編碼憑證。IDP_SAML_ENTITY_ID:用於唯一識別 IdP 的網址或 URI。IDP_SAML_SSO_URI:IdP 的核發者 URI。IDP_USER_ATTRIBUTE:IdP 使用者的屬性,例如電子郵件。IDP_USER_PREFIX:使用者 IdP 權杖中的要求名稱。
將
IdentityProviderConfig自訂資源套用至全域 API 伺服器:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f pa-idp-saml.yaml將
GLOBAL_API_SERVER_KUBECONFIG變數替換為全域 API 伺服器的 kubeconfig 檔案路徑。
刪除現有的識別資訊提供者
使用 GDC 控制台刪除現有的識別資訊提供者:
- 登入 GDC 控制台。
- 在專案選取器中,選取要刪除身分提供者的組織。
- 在導覽選單中,依序點選「Identity and Access」>「Identity」。
勾選一或多個識別資訊提供者名稱旁的方塊。
系統會顯示訊息,其中包含您選取的識別資訊提供者數量和「Delete」(刪除) 按鈕。
點選「刪除」。