使用完全限定域名 (FQDN) 登录

借助 GKE Identity Service,您可以使用第三方身份提供方提供的用户名和密码通过命令行登录已配置的集群。如果您的集群管理员已选择允许您使用完全限定域名 (FQDN) 直接在 GKE Identity Service 服务器上进行身份验证,请按照本页中的说明操作。对于 SAML 提供方,只有通过此身份验证方法才支持登录访问权限。

从 1.29 版开始,此身份验证方法仅适用于 VMware 本地集群 (Google Distributed Cloud) 和裸机集群。不支持其他集群类型。

使用您提供的 FQDN 登录所需的 gcloud CLI 版本至少为 474.0.0 版。

登录工作流

以下是用户使用 FQDN 访问方法登录时的工作流步骤:

  1. 启动登录:用户运行命令 gcloud anthos auth login --server APISERVER-URL 以启动登录流程。
  2. 身份提供方选择:向用户提供已配置的身份提供方的列表。用户选择其凭据存储在哪个提供方。
  3. 通过身份提供方进行身份验证:身份验证流程因您选择的身份提供方协议而异:

    • OIDC:系统会将用户重定向到 OIDC 提供方登录页面。登录成功后,提供方会将代码发送回 GKE Identity Service,后者通过反向渠道通信将其交换为访问令牌。
    • SAML:用户会被重定向到 SAML 提供方登录页面。成功登录后,提供方会直接将令牌(断言)发送回 GKE Identity Service,从而避免额外回调。
    • LDAP:GKE Identity Service 不会重定向到外部提供方,而是显示一个登录页面,用户可在其中输入其 LDAP 凭据,然后直接通过 LDAP 服务器进行验证。
  4. 令牌验证和 kubeconfig 文件生成:GKE Identity Service 会验证收到的令牌(或断言),为用户创建新的令牌,并返回包含此令牌的 kubeconfig 文件。

  5. 集群访问权限:用户可以使用 kubectl 命令访问集群。kubectl 客户端会在每次请求时自动发送来自 kubeconfig 文件的令牌。

  6. 令牌验证和 RBAC 授权:Kubernetes API 服务器接收令牌,GKE Identity Service 验证此令牌,并检索用户的声明(用户名和群组)。验证成功后,API 服务器会运行基于角色的访问权限控制 (RBAC) 检查,以确定用户有权访问的资源。

使用受信任的 SNI 证书登录

SNI 证书利用公司设备上已有的受信任证书来简化集群访问权限。管理员可以在创建集群时指定此证书。如果您的集群在集群级别使用受信任的 SNI 证书,请将本部分中的命令与管理员提供的 FQDN 搭配使用,以登录集群并接收访问令牌。您还可以使用在身份验证成功后存储令牌的安全 kubeconfig 文件。

运行以下命令以向服务器进行身份验证:

gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE

请替换以下内容:

  • APISERVER-URL:集群的 Kubernetes API 服务器的 FQDN。
  • OUTPUT_FILE:如果 kubeconfig 文件位于默认位置之外的其他位置,请使用此标志。如果省略此标志,则身份验证令牌会添加到默认位置的 kubeconfig 文件中。例如:--kubeconfig /path/to/custom.kubeconfig

使用集群 CA 颁发的证书登录

如果您未在集群级层使用受信任的 SNI 证书,则身份服务使用的证书由集群的证书授权机构 (CA) 颁发。管理员会将此 CA 证书分发给用户。使用集群的 CA 证书运行以下命令来登录集群:

gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --login-config-cert CLUSTER_CA_CERTIFICATE