本页介绍了如何将 Google Distributed Cloud (GDC) 气隙网络连接到您组织的现有身份提供方 (IdP)。IdP 是一种可集中管理和保护用户身份并提供身份验证服务的系统。连接到现有 IdP 后,用户可以使用其组织凭据访问 GDC,而无需在 GDC 中创建或管理单独的账号。此流程可确保顺畅安全的登录体验。由于 IdP 是全球性资源,因此无论用户在哪个地区工作,都可以通过同一 IdP 访问 GDC。
本页面适用于平台管理员群组中的受众群体,例如 IT 管理员或安全工程师,他们希望连接到 IdP。如需了解详情,请参阅 GDC 气隙环境文档的受众群体。
您可以使用以下方法之一连接到现有身份提供商:
准备工作
在连接到现有身份提供方之前,请确保已完成初始设置,并且您拥有必要的权限。
初始身份提供方连接设置
贵组织的基础设施运维人员群组的成员必须先配置与 IdP 的初始连接,然后用户才能访问 GDC 的集群或信息中心。
他们可以在工单系统中提交工单,并提供有关身份提供方的以下信息:
- 服务器的数量及其类型。
- 块存储量(以 TB 为单位)。
- 对象存储空间用量(以 TB 为单位)。
- OIDC 的必需参数:
- clientID:向 OpenID 提供方发出身份验证请求的客户端应用的 ID。
- clientSecret:只有应用和 OpenID 提供方知道的密钥。
- issuerURL:用于向 OpenID 发送授权请求的网址。
- scopes:要发送到 OpenID 提供方的其他范围。
- userclaim:用作用户名的 JSON Web 令牌 (JWT) 声明。
- certificateAuthorityData:OIDC 提供方的 base64 编码的 PEM 编码证书。
- SAML 提供商的必需参数:
- idpCertificateDataList:用于验证 SAML 响应的 IdP 证书。这些证书必须采用标准的 base64 编码和 PEM 格式。最多支持两个证书,以便于 IdP 证书轮替。
- idpEntityID:SAML 提供方的 SAML 实体 ID,以 URI 格式指定。例如:
https://www.idp.com/saml
。 - idpSingleSignOnURI:SAML 提供方的 SSO 端点的 URI。例如:
https://www.idp.com/saml/sso
。
- 初始管理员的用户名或一组用户名。
所需权限
如需获得连接现有身份提供商所需的权限,请执行以下操作:
- 请让您的组织 IAM 管理员向您授予 IdP Federation Admin (
idp-federation-admin
) 角色。 - 确保您在连接身份提供方时指定的初始管理员具有组织 IAM 管理员 (
organization-iam-admin
) 角色。
连接到现有身份提供方
如需连接身份提供方,您必须拥有身份提供方提供的单一客户端 ID 和密钥。您可以连接到现有的 OIDC 或 SAML 提供方。
连接到现有 OIDC 提供方
如需连接到现有 OIDC 提供方,请完成以下步骤:
控制台
- 登录 GDC 控制台。以下示例展示了登录名为
org-1
的组织后的控制台: - 在导航菜单中,依次点击身份和访问权限 > 身份。
点击设置新的身份提供方。
在配置身份提供方部分中,完成以下步骤,然后点击下一步:
- 在身份提供方下拉菜单中,选择 Open ID Connect (OIDC)。
- 输入身份提供商名称。
- 在 Google Distributed Cloud 网址字段中,输入您用于访问 GDC 的网址。
- 在颁发者 URI 字段中,输入用于向您的身份提供方发送授权请求的网址。Kubernetes API 服务器使用此网址来发现用于验证令牌的公钥。该网址必须使用 HTTPS。
- 在客户端 ID 字段中,输入向身份提供方发出身份验证请求的客户端应用的 ID。
- 在客户端密钥部分中,选择配置客户端密钥(推荐)。
- 在客户端密钥字段中,输入客户端密钥,该密钥是身份提供方与 Distributed Cloud 之间的共享密钥。
可选:在前缀字段中,输入前缀。前缀会添加到用户声明和群组声明的开头。前缀用于区分不同的身份提供商配置。例如,如果您设置的前缀为
myidp
,则用户声明可能是myidpusername@example.com
,群组声明可能是myidpgroup@example.com
。将基于角色的访问权限控制 (RBAC) 权限分配给群组时,还必须包含前缀。可选:在加密部分中,选择启用加密令牌。
如需启用加密令牌,您必须具有 IdP 联合身份验证管理员角色。请让您的组织 IAM 管理员向您授予 IdP Federation Admin (
idp-federation-admin
) 角色。- 在密钥 ID 字段中,输入您的密钥 ID。密钥 ID 是 JSON Web 加密令牌 (JWT) 的公钥。您的 OIDC 提供商会设置并预配密钥 ID。
- 在解密密钥字段中,输入 PEM 格式的解密密钥。解密密钥是一种非对称密钥,用于解密加密内容。您的 OIDC 提供商会设置并预配解密密钥。
在配置属性部分,完成以下步骤,然后点击下一步:
- 在 OIDC 提供方的证书授权机构字段中,输入身份提供方的 base64 编码的 PEM 编码证书。如需了解详情,请参阅 https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail。
- 如需创建字符串,请将证书(包括标头)进行
base64
编码。 - 将生成的字符串作为单独的一行添加到 中。示例:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
- 如需创建字符串,请将证书(包括标头)进行
- 在群组声明字段中,输入身份提供方令牌中包含用户群组信息的声明的名称。
- 在用户声明字段中,输入用于标识每个用户的声明。许多提供商的默认声明是
sub
。您可以选择其他声明,例如email
或name
,具体取决于身份提供方。email
以外的声明会以颁发者网址作为前缀,以防止命名冲突。 - 可选:在“自定义属性”部分中,点击添加,然后输入有关用户的其他声明的键值对,例如用户所在的部门或个人资料照片网址。
- 如果您的身份提供方需要其他范围,请在范围字段中输入以英文逗号分隔的范围,以发送给身份提供方。
- 在额外参数部分中,输入身份提供商所需的任何其他键值对(以英文逗号分隔)。
如果您要向群组授权,请传入
resource=token-groups-claim
。
- 在 OIDC 提供方的证书授权机构字段中,输入身份提供方的 base64 编码的 PEM 编码证书。如需了解详情,请参阅 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 控制台。
- 在导航菜单中,依次点击身份和访问权限 > 身份。
在配置身份提供方部分中,完成以下步骤,然后点击下一步:
- 在身份提供方下拉菜单中,选择安全断言标记语言 (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(SAML 断言)部分,选择 Enable encrypted SAML assertions(启用加密的 SAML 断言)。
如需启用加密的 SAML 断言,您必须拥有 IdP 联合管理员角色。请让您的组织 IAM 管理员向您授予 IdP Federation Admin (
idp-federation-admin
) 角色。- 在加密证书字段中,输入 PEM 格式的加密证书。生成 SAML 提供商后,您会收到加密证书。
- 在解密密钥字段中,输入您的解密密钥。生成 SAML 提供商后,您会收到解密密钥。
可选:在 SAML Signed requests(SAML 签名请求)部分,勾选 Enable signed SAML requests(启用已签名的 SAML 请求)。
- 在签名证书字段中,以 PEM 文件格式输入您的签名证书。您的 SAML 提供商会设置并为您生成签名证书。
- 在签名密钥字段中,输入 PEM 文件格式的签名密钥。您的 SAML 提供商会设置并为您生成签名密钥。
在配置属性页面中,完成以下步骤,然后点击下一步:
- 在 IDP certificate(IDP 证书)字段中,输入身份提供方的 base64 编码的 PEM 编码证书。如需了解详情,请参阅 https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail。
- 如需创建字符串,请将证书(包括标头)进行
base64
编码。 - 将生成的字符串作为单独的一行添加到 中。例如:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
。
- 如需创建字符串,请将证书(包括标头)进行
- 在其他 IDP 证书字段中输入任何其他证书。
- 在用户属性字段中,输入用于标识每个用户的属性。许多提供商的默认属性是
sub
。您可以选择其他属性,例如email
或name
,具体取决于身份提供方。email
以外的属性会以颁发者网址作为前缀,以防止命名冲突。 - 在群组属性字段中,输入身份提供方令牌中包含用户群组信息的属性的名称。
- 可选:在属性映射区域中,点击添加,然后输入有关用户的其他属性的键值对,例如用户所在的部门或个人资料照片网址。
- 在 IDP certificate(IDP 证书)字段中,输入身份提供方的 base64 编码的 PEM 编码证书。如需了解详情,请参阅 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 控制台。
- 在项目选择器中,选择要从中删除身份提供方的组织。
- 在导航菜单中,依次点击身份和访问权限 > 身份。
选中一个或多个身份提供方名称旁边的复选框。
系统随即会显示一条消息,其中包含您选择的身份提供商数量以及一个删除按钮。
点击删除。