連線至識別資訊提供者

本頁面說明如何將 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) 角色。

準備環境

連線至現有的識別資訊提供者

如要連結識別資訊提供者,您必須擁有該提供者的單一用戶端 ID 和密鑰。您可以連結至現有的 OIDC 或 SAML 供應商。

連線至現有的 OIDC 提供者

如要連結至現有的 OIDC 供應商,請完成下列步驟:

控制台

  1. 登入 GDC 控制台。以下範例顯示登入名為 org-1 的組織後,主控台的畫面: 控制台歡迎頁面,提供常見工作的快速存取連結
  2. 在導覽選單中,依序點選「Identity and Access」>「Identity」。
  3. 按一下「Add Identity Provider」。
  4. 在「Configure identity provider」(設定識別資訊提供者) 部分,完成下列步驟:

    1. 在「Identity provider」(識別資訊提供者) 下拉式選單中,選取「Open ID Connect (OIDC)」。
    2. 輸入「Identity provider name」。
    3. 在「Issuer URI」(核發者 URI) 欄位中,輸入授權要求傳送至識別資訊提供者的網址。Kubernetes API 伺服器會使用這個網址,尋找用於驗證權杖的公開金鑰。網址必須使用 HTTPS。
    4. 在「Client ID」(用戶端 ID) 欄位中,輸入向識別資訊提供者提出驗證要求的用戶端應用程式 ID。
    5. 在「Client Secret」(用戶端密鑰) 欄位中,輸入用戶端密鑰,這是識別資訊提供者與 Distributed Cloud 之間共用的密鑰。
    6. 選用:在「Identity provider prefix」(識別資訊提供者前置字元) 欄位中輸入前置字元。這個前置字串會加在使用者和群組要求開頭。前置字串用於區分不同的識別資訊提供者設定。舉例來說,如果您將前置字串設為 myidp,使用者要求可能是 myidp-username@example.com,群組要求可能是 myidp-group@example.com。將角色式存取控管 (RBAC) 權限指派給群組時,也必須包含前置字串。

    7. 選用:在「Encryption」(加密) 部分,選取「Enable encryption tokens」(啟用加密權杖)。

      如要啟用加密權杖,請要求 IAM 機構組織管理員授予您 IdP 聯合管理員 (idp-federation-admin) 角色。

      1. 在「Key ID」欄位中輸入金鑰 ID。金鑰 ID 會識別 JSON 網頁加密 (JWE) 權杖的公開金鑰。OIDC 提供者會設定及佈建金鑰 ID。
      2. 在「Decryption key」(解密金鑰) 欄位中,輸入 PEM 格式的解密金鑰。解密金鑰是非對稱式金鑰,用於解密權杖。OIDC 供應商會設定及佈建解密金鑰。
    8. 點選「下一步」。

  5. 在「設定屬性」部分,完成下列步驟:

    1. 在「Certificate authority for OIDC provider」(OIDC 供應商的憑證授權單位) 欄位中,輸入識別資訊提供者的 PEM 編碼憑證 (採用 Base64 編碼)。詳情請參閱維基百科的「隱私強化郵件」一文。
      1. 如要建立字串,請將憑證 (包含標頭) 的編碼方式改為 base64 格式,
      2. 並把產生的字串另列一行。範例:LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
    2. 在「Group Claim」(群組聲明) 欄位中,輸入識別資訊提供者權杖中含有使用者群組資訊的聲明名稱。
    3. 在「User Claim」欄位中,輸入用於識別每位使用者的要求。許多供應商的預設宣告為 sub。視識別資訊提供者而定,您可以選擇其他憑證附加資訊,例如 email 或 name。email 以外的憑證附加資訊會加上核發者網址前置字元,以免名稱衝突。
    4. 選用:在「Custom attributes」(自訂屬性) 區段中,按一下「Add Pair」(新增組合),然後輸入鍵/值組合,提供使用者的其他聲明,例如部門或個人資料相片網址。
    5. 如果識別資訊提供者需要額外的範圍,請在「Scopes」(範圍) 欄位中輸入要傳送至識別資訊提供者的範圍,並以半形逗號分隔。
    6. 在「Extra parameters」(額外參數) 區段中,輸入識別資訊提供者所需的任何其他鍵/值組合 (以半形逗號分隔)。如要授權群組,請傳入 resource=token-groups-claim。
    7. 按一下「下一步」。
  6. 在「Specify initial admins」部分,完成下列步驟:

    1. 選擇要新增個別使用者或群組做為初始管理員。
    2. 在「Username or group alias」(使用者名稱或群組別名) 欄位中,輸入要存取組織的使用者或群組電子郵件地址。如果您是管理員,請輸入您的電子郵件地址,例如 kiran@example.com。前置字串會加在使用者名稱前面,例如 myidp-kiran@example.com。
    3. 點選「下一步」。
  7. 檢查所選項目,然後按一下「設定」。

新的識別資訊提供者設定檔會顯示在「識別資訊設定檔」清單中。

API

如要將識別資訊提供者連結至組織,請建立全域 IdentityProviderConfig 自訂資源。

  1. 建立 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 的前置字串。
  2. 將 IdentityProviderConfig 自訂資源套用至全域 API 伺服器:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f pa-idp-oidc.yaml
    

    將 GLOBAL_API_SERVER_KUBECONFIG 變數替換為全域 API 伺服器的 kubeconfig 檔案路徑。

連線至現有的 SAML 供應商

如要連結至現有的 SAML 供應商,請完成下列步驟:

控制台

  1. 登入 GDC 控制台。以下範例顯示登入名為 org-1 的組織後,主控台的畫面: 控制台歡迎頁面,提供常見工作的快速存取連結
  2. 在導覽選單中,依序點選「Identity and Access」>「Identity」。
  3. 按一下「Add Identity Provider」。
  4. 在「Configure identity provider」(設定識別資訊提供者) 部分,完成下列步驟:

    1. 在「Identity provider」(識別資訊提供者) 下拉式選單中,選取「Security Assertion Markup Language (SAML)」(安全宣告標記語言 (SAML))。
    2. 輸入識別資訊提供者名稱。
    3. 在「Identity ID」(身分 ID) 欄位中,輸入向身分提供者提出驗證要求的用戶端應用程式 ID。
    4. 在「SSO URI」欄位中,輸入供應商單一登入端點的網址。例如:https://www.idp.com/saml/sso。
    5. 在「Identity provider prefix」(識別資訊提供者前置字元) 欄位中輸入前置字元。這個前置字串會加到使用者和群組憑證的開頭。前置字串可用來區分不同的識別資訊提供者設定。舉例來說,如果您將前置字串設為 myidp,使用者要求可能會顯示為 myidp-username@example.com,群組要求則可能顯示為 myidp-group@example.com。將 RBAC 權限指派給群組時,也必須加上前置字串。

    6. 為提高安全性,請將 SAML 供應商設定為核發效期為 5 到 10 分鐘的斷言。這項設定可在 SAML 供應商的設定中調整。

    7. 選用:在「SAML Assertions」(SAML 宣告) 部分,選取「Enable encryption SAML assertions」(啟用加密 SAML 宣告)。

      如要啟用加密 SAML 斷言,請要求 IAM 機構組織管理員授予您 IdP 聯盟管理員 (idp-federation-admin) 角色。

      1. 在「Encryption assertion certificate」(加密斷言憑證) 欄位中,輸入 PEM 格式的加密憑證。您可以向 SAML 供應商取得加密憑證。
      2. 在「Encryption assertion key」(加密斷言金鑰) 欄位中輸入私密金鑰。產生 SAML 供應商後,您會收到解密金鑰。
    8. 選用:在「SAML Signed Requests」(SAML 經簽署的要求) 部分,選取「Enable signed SAML requests」(啟用經簽署的 SAML 要求)。

      1. 在「Signing certificate」(簽署憑證) 欄位中,輸入 PEM 檔案格式的簽署憑證。SAML 供應商會核發簽署憑證。
      2. 在「Signing key」(簽署金鑰) 欄位中,輸入 PEM 檔案格式的簽署金鑰。SAML 供應商會設定並產生簽署金鑰。
    9. 點選「下一步」。

  5. 在「Configure attributes」頁面中,完成下列步驟:

    1. 在「IDP certificate」(IDP 憑證) 欄位中,輸入識別資訊提供者的 PEM 編碼憑證 (採用 Base64 編碼)。詳情請參閱維基百科的「隱私強化郵件」一文。
      1. 如要建立字串,請將憑證 (包含標頭) 的編碼方式改為 base64 格式,
      2. 並把產生的字串另列一行加入。例如 LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==。
    2. 在「Additional IDP certificate」(其他 IdP 憑證) 欄位中輸入其他憑證。
    3. 在「User attribute」(使用者屬性) 欄位中,輸入用來識別每位使用者的屬性。許多供應商的預設屬性為 sub。視識別資訊提供者而定,您可以選擇其他屬性,例如 email 或 name。email 以外的屬性會加上核發者網址前置字元,以免名稱衝突。
    4. 在「Group attribute」(群組屬性) 欄位中,輸入識別資訊提供者權杖中保存使用者群組資訊的屬性名稱。
    5. 選用:在「Attribute mapping」(屬性對應) 部分,按一下「Add Pair」(新增組合),然後輸入使用者其他屬性的鍵/值組合,例如部門或個人資料相片網址。
    6. 按一下「下一步」。
  6. 在「Specify initial admins」部分,完成下列步驟:

    1. 選擇要新增個別使用者或群組做為初始管理員。
    2. 在「Username or group alias」(使用者名稱或群組別名) 欄位中,輸入要存取組織的使用者或群組電子郵件地址。如果您是管理員,請輸入您的電子郵件地址,例如 kiran@example.com。前置字串會加在使用者名稱前面,例如 myidp-kiran@example.com。
    3. 點選「下一步」。
  7. 在「Review」(審查) 頁面中,先檢查每個身分設定的所有值,再繼續操作。

    按一下「Back」(返回),回到先前的頁面並進行必要修正。

  8. 點選 [設定]。

新的識別資訊提供者設定檔會顯示在「識別資訊設定檔」清單中。

API

如要將識別資訊提供者連結至組織,請建立全域 IdentityProviderConfig 自訂資源。

  1. 建立 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 權杖中的要求名稱。
  2. 將 IdentityProviderConfig 自訂資源套用至全域 API 伺服器:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f pa-idp-saml.yaml
    

    將 GLOBAL_API_SERVER_KUBECONFIG 變數替換為全域 API 伺服器的 kubeconfig 檔案路徑。

刪除現有的識別資訊提供者

使用 GDC 控制台刪除現有的識別資訊提供者:

  1. 登入 GDC 控制台。
  2. 在專案選取器中,選取要刪除身分提供者的組織。
  3. 在導覽選單中,依序點選「Identity and Access」>「Identity」。
  4. 勾選一或多個識別資訊提供者名稱旁的方塊。

    系統會顯示訊息,其中包含您選取的識別資訊提供者數量和「Delete」(刪除) 按鈕。

  5. 點選「刪除」。