本頁說明如何將 Google Distributed Cloud (GDC) 氣隙網路連線至貴機構現有的身分識別提供者 (IdP)。IdP 是一種系統,可集中管理及保護使用者身分,並提供驗證服務。連結至現有 IdP 後,使用者就能使用機構的憑證存取 GDC,不必在 GDC 中建立或管理個別帳戶。這個程序可確保登入體驗流暢安全。由於 IdP 是全域資源,使用者無論在哪個區域工作,都能透過同一個 IdP 存取 GDC。
本頁面適用於平台管理員群組的對象,例如 IT 管理員或安全工程師,他們想要連線至 IdP。詳情請參閱 GDC air-gapped 說明文件適用對象。
您可以透過下列任一方式連結至現有的身分識別提供者:
事前準備
連線至現有身分識別提供者之前,請確認已完成初始設定,並具備必要權限。
初始識別資訊提供者連線設定
貴機構的基礎架構營運人員群組成員必須先設定與 IdP 的初始連線,使用者才能存取 GDC 的叢集或資訊主頁。
如要提出要求,請在 ServiceNow票證系統中開立支援單,並提供下列身分識別提供者資訊:
- 伺服器數量和類型。
- 區塊儲存空間量 (以 TB 為單位)。
- 物件儲存空間大小 (以 TB 為單位)。
- OIDC 的必要參數:
- clientID:向 OpenID 供應商提出驗證要求時使用的用戶端應用程式 ID。
- clientSecret:只有應用程式和 OpenID 供應商知道的密鑰。
- issuerURL:授權要求傳送給 OpenID 的網址。
- scopes:要傳送給 OpenID 提供者的其他範圍。
- userclaim:要用做使用者名稱的 JSON Web Token (JWT) 憑證。
- certificateAuthorityData:OIDC 供應商的 PEM 編碼憑證 (採用 Base64 編碼)。
- SAML 提供者的必要參數:
- idpCertificateDataList:用於驗證 SAML 回應的 IdP 憑證。這些憑證必須採用標準 Base64 編碼,且為 PEM 格式。為方便 IdP 憑證輪替,最多僅支援兩個憑證。
- idpEntityID:SAML 供應商的 SAML 實體 ID,以 URI 格式指定。例如:
https://www.idp.com/saml
。 - idpSingleSignOnURI:SAML 提供者的單一登入端點 URI。例如:
https://www.idp.com/saml/sso
。
- 初始管理員的使用者名稱或使用者名稱群組。
所需權限
如要取得連線現有身分識別提供者所需的權限,請按照下列步驟操作:
- 請機構 IAM 管理員授予您 IdP 聯盟管理員 (
idp-federation-admin
) 角色。 - 請確認您在連結身分提供者時指定的初始管理員,具備機構 IAM 管理員 (
organization-iam-admin
) 角色。
連結至現有識別資訊提供者
如要連結識別資訊提供者,您必須擁有來自識別資訊提供者的單一客戶 ID 和密碼。您可以連線至現有的 OIDC 或 SAML 提供者。
連結至現有的 OIDC 供應商
如要連線至現有的 OIDC 供應商,請完成下列步驟:
控制台
- 登入 GDC 控制台。以下範例顯示登入名為「
org-1
」的機構後,控制台的畫面: - 在導覽選單中,依序點選「Identity and Access」>「Identity」。
按一下「設定新的身分識別提供者」。
在「設定識別資訊提供者」部分,完成下列步驟,然後按一下「下一步」:
- 在「Identity provider」下拉式選單中,選取「Open ID Connect (OIDC)」。
- 輸入識別資訊提供者名稱。
- 在「Google Distributed Cloud URL」(Google Distributed Cloud 網址) 欄位中,輸入您用來存取 GDC 的網址。
- 在「核發者 URI」欄位中,輸入授權要求傳送至識別資訊提供者的網址。Kubernetes API 伺服器會使用這個網址探索公開金鑰,以驗證權杖。網址必須使用 HTTPS。
- 在「Client ID」欄位中,輸入向身分識別提供者提出驗證要求的用戶端應用程式 ID。
- 在「用戶端密鑰」部分,選取「設定用戶端密鑰 (建議)」。
- 在「用戶端密鑰」欄位中,輸入用戶端密鑰,這是身分識別提供者與 Distributed Cloud 之間共用的密鑰。
選用:在「前置字元」欄位中輸入前置字元。系統會在使用者聲明和群組聲明開頭加入前置字元。前置字串用於區分不同的身分提供者設定。舉例來說,如果您將前置字元設為
myidp
,使用者聲明可能為myidpusername@example.com
,群組聲明可能為myidpgroup@example.com
。將角色型存取權控管 (RBAC) 權限指派給群組時,也必須包含這個前置字元。選用步驟:在「Encryption」(加密) 部分,選取「Enable encrypted tokens」(啟用加密權杖)。
如要啟用加密權杖,您必須具備 IdP 聯盟管理員角色。請機構 IAM 管理員授予您 IdP 聯盟管理員 (
idp-federation-admin
) 角色。- 在「金鑰 ID」欄位中,輸入金鑰 ID。金鑰 ID 是 JSON Web Encryption Token (JWT) 的公開金鑰。OIDC 提供者會設定及佈建金鑰 ID。
- 在「解密金鑰」欄位中,以 PEM 格式輸入解密金鑰。解密金鑰是一種非對稱金鑰,可解密加密內容。OIDC 供應商會設定並佈建解密金鑰。
在「設定屬性」部分,完成下列步驟並按一下「下一步」:
- 在「OIDC 供應商的憑證授權單位」欄位中,輸入身分識別提供者的 PEM 編碼憑證 (採用 Base64 編碼)。詳情請參閱 https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail。
- 如要建立字串,請將憑證 (包含標頭) 的編碼方式改為
base64
。 - 並以獨立一行的形式加入。範例:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
- 如要建立字串,請將憑證 (包含標頭) 的編碼方式改為
- 在「群組聲明」欄位中,輸入身分識別提供者權杖中聲明的名稱,該聲明會保留使用者的群組資訊。
- 在「使用者聲明」欄位中,輸入用於識別每位使用者的聲明。許多供應商的預設聲明為
sub
。視身分識別提供者而定,您可以選擇其他憑證附加資訊,例如email
或name
。email
以外的聲明會在前方加上核發者網址,以免發生命名衝突。 - 選用:在「自訂屬性」部分中,按一下「新增」,然後輸入使用者其他聲明的鍵/值組合,例如部門或個人資料相片網址。
- 如果身分識別提供者需要其他範圍,請在「範圍」欄位中,輸入以半形逗號分隔的範圍,傳送給身分識別提供者。
- 在「Extra parameters」(額外參數) 區段中,輸入身分識別提供者要求的任何額外鍵值組合 (以半形逗號分隔)。如要授權群組,請傳遞
resource=token-groups-claim
。
- 在「OIDC 供應商的憑證授權單位」欄位中,輸入身分識別提供者的 PEM 編碼憑證 (採用 Base64 編碼)。詳情請參閱 https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail。
在「指定初始管理員」部分,完成下列步驟並按一下「下一步」:
- 選擇要將個別使用者或群組新增為初始管理員。
- 在「使用者名稱或群組別名」欄位中,輸入要用來存取機構的使用者或群組電子郵件地址。如果您是管理員,請輸入您的電子郵件地址,例如
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 控制台。
- 在導覽選單中,依序點選「Identity and Access」>「Identity」。
在「設定識別資訊提供者」部分,完成下列步驟,然後按一下「下一步」:
- 在「Identity provider」下拉式選單中,選取「Security Assertion Markup Language (SAML)」。
- 輸入識別資訊提供者名稱。
- 在「身分 ID」欄位中,輸入向身分識別提供者提出驗證要求的用戶端應用程式 ID。
- 在「SSO URI」欄位中,輸入供應商的單一登入端點網址。例如:
https://www.idp.com/saml/sso
。 在「身分提供者前置字元」欄位中輸入前置字元。前置字串會加到使用者和群組聲明的開頭。前置字元可區分不同的識別資訊提供者設定。舉例來說,如果您將前置字串設為
myidp
,使用者聲明可能會顯示為myidpusername@example.com
,群組聲明則可能會顯示為myidpgroup@example.com
。為群組指派 RBAC 權限時,也必須加入前置字元。為提升安全性,請將 SAML 提供者設定為發出生命週期為 5 到 10 分鐘的聲明。這項設定可在 SAML 供應商的設定中進行設定。
選用:在「SAML Assertions」部分,選取「Enable encrypted SAML assertions」。
如要啟用加密的 SAML 聲明,您必須具備 IdP 聯盟管理員角色。請要求機構 IAM 管理員授予您 IdP 聯盟管理員 (
idp-federation-admin
) 角色。- 在「Encryption certificate」(加密憑證) 欄位中,輸入 PEM 格式的加密憑證。產生 SAML 供應商後,您會收到加密憑證。
- 在「解密金鑰」欄位中輸入解密金鑰。產生 SAML 提供者後,您會收到解密金鑰。
選用:在「SAML Signed requests」部分,勾選「Enable signed SAML requests」。
- 在「Signing certificate」欄位中,輸入 PEM 檔案格式的簽署憑證。SAML 供應商會設定並產生簽署憑證。
- 在「簽署金鑰」欄位中,以 PEM 檔案格式輸入簽署金鑰。SAML 供應商會設定並產生簽署金鑰。
在「設定屬性」頁面中,完成下列步驟並按一下「下一步」:
- 在「IDP certificate」欄位中,輸入身分識別提供者的 PEM 編碼憑證 (採用 Base64 編碼)。詳情請參閱 https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail。
- 如要建立字串,請將憑證 (包含標頭) 的編碼方式改為
base64
。 - 並把產生的字串另列一行加入。例如
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
。
- 如要建立字串,請將憑證 (包含標頭) 的編碼方式改為
- 在「Additional IDP certificate」欄位中輸入其他憑證。
- 在「使用者屬性」欄位中,輸入用來識別每位使用者的屬性。許多供應商的預設屬性為
sub
。視身分提供者而定,您可以選擇其他屬性,例如email
或name
。email
以外的屬性都必須在前方加上核發者網址,以免發生命名衝突。 - 在「群組屬性」欄位中,輸入身分識別提供者權杖中屬性的名稱,該屬性會保留使用者的群組資訊。
- 選用:在「屬性對應」區域中,按一下「新增」,然後輸入使用者其他屬性的鍵值組,例如部門或個人資料相片網址。
- 在「IDP certificate」欄位中,輸入身分識別提供者的 PEM 編碼憑證 (採用 Base64 編碼)。詳情請參閱 https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail。
在「指定初始管理員」部分,完成下列步驟並按一下「下一步」:
- 選擇要將個別使用者或群組新增為初始管理員。
- 在「使用者名稱」欄位中,輸入使用者或群組的電子郵件地址,即可存取機構。如果您是管理員,請輸入您的電子郵件地址,例如
kiran@example.com
。前置字串會加在使用者名稱前面,例如myidp-kiran@example.com
。
在「查看」頁面中,請先檢查每個身分設定的所有值,再繼續操作。按一下「返回」返回上一個頁面,並進行必要的修正。根據規格設定所有值後,按一下「設定」。
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」。
勾選一或多個身分識別提供者名稱旁邊的方塊。
畫面上會顯示您選取的識別資訊提供者數量,以及「刪除」按鈕。
點選「刪除」。