身份验证

GKE On-Prem 支持 OpenID Connect (OIDC),可通过命令行对用户集群进行身份验证。请参阅以下主题:

要通过 Google Cloud Console 登录,GKE On-Prem 支持使用 Kubernetes 服务帐号的不记名令牌。请参阅登录

本主题假设您熟悉 OAuth 2.0OpenID Connect。在 OpenID 身份验证环境中,您还应该熟悉范围声明

概览

借助 OIDC,您可以按照组织中创建、启用和停用员工帐号的标准程序来管理对 Kubernetes 集群的访问权限。您还可以使用组织的安全组来配置对 Kubernetes 集群或集群中特定服务的访问权限。

  • 用户通过提供用户名和密码来登录 OpenID 提供商。

  • OpenID 提供商为用户签发 ID 令牌。该令牌由提供商签名。

  • 应用代表用户执行操作,向 Kubernetes API 服务器发送 HTTPS 请求。应用在请求标头中包含用户的 ID 令牌。

  • Kubernetes API 服务器使用提供方的证书来验证该令牌。

如果您的企业运行 Active Directory 联合身份验证服务 (ADFS) 服务器,则 ADFS 服务器可以充当您的 OpenID 提供方。另一个选择是使用第三方作为您的 OpenID 提供商。例如,Google、Microsoft、Facebook 和 Twitter 都是 OpenID 提供商。

使用适用于 OIDC 的 Kubectl 插件调用 Kubernetes API 服务器

通常,用户会输入 kubectl 命令,因此 kubectl 会调用 Kubernetes API 服务器。

为此,用户的 ID 令牌必须位于 kubeconfig 文件中。GKE On-Prem 提供适用于 OIDC 的 Kubectl 插件,以便在 kubeconfig 中包含令牌和其他 OIDC 值。

Kubernetes API 服务器和 ID 令牌

kubectl 代表用户调用 Kubernetes API 服务器时,API 服务器会使用 OpenID 提供商的公共证书验证令牌。然后,API 服务器会解析令牌以了解用户的身份和用户的安全组。

API 服务器会将用户的安全组与集群的基于角色的访问控制 (RBAC) 政策进行比较,以确定用户是否有权进行此特定调用。