Authentication 使用Google作为OIDC提供程序,而不会泄露kubernetes中的客户端机密

Authentication 使用Google作为OIDC提供程序,而不会泄露kubernetes中的客户端机密,authentication,kubernetes,google-oauth,openid-connect,Authentication,Kubernetes,Google Oauth,Openid Connect,我们只有一个kubernetes开发集群。我们希望为在这个开发集群上工作的每个开发人员提供一个名称空间的受控访问 我们想使用Google作为kubernetes API支持的OIDC提供者对其进行身份验证 但这需要客户机机密成为~/.kube/config users: - name: you@yourdomain.com user: auth-provider: name: oidc config: client-id: <

我们只有一个kubernetes开发集群。我们希望为在这个开发集群上工作的每个开发人员提供一个名称空间的受控访问

我们想使用Google作为kubernetes API支持的OIDC提供者对其进行身份验证

但这需要客户机机密成为
~/.kube/config

users:
- name: you@yourdomain.com
  user:
    auth-provider:
      name: oidc      
      config:
        client-id: <client-id>
        client-secret: <client-secret>
        idp-issuer-url: https://accounts.google.com        
        id-token: <id-token>
        refresh-token: <refresh-token>
用户:
-姓名:you@yourdomain.com
用户:
身份验证提供程序:
姓名:oidc
配置:
客户端id:
客户机密:
idp颁发者url:https://accounts.google.com        
id令牌:
刷新令牌:
我们不想向用户泄露客户机机密,因为当开发人员离开组织时,客户机机密将被泄露,并可能被误用来模拟


请建议如何使用谷歌作为OIDC提供商对kubernetes集群中的用户进行身份验证,而不泄露客户机机密。

客户机机密现在是k8s OIDC配置的可选配置,这意味着它可以支持公共客户机(有或没有客户机机密)和机密客户机(每个kubectl用户都有客户_机密)


这意味着您不需要使用客户端密码进行身份验证,但正如我在回答您的下一个问题时所写的那样,不需要担心凭据泄漏。

对我来说似乎很奇怪,我们在GKE中使用GSuite组织进行谷歌云身份验证。因此,即使此人离开了组织,但仍然拥有访问令牌,它也会如果此人在GSuite中被从组织中删除,则该应用程序将毫无用处。您如何使用Google作为OIDC管理组成员身份?客户端机密可能会被其他恶意应用程序滥用。问题是,即使该成员离开组织,任何其他应用程序也可以使用该客户端机密,现在充当当前应用程序,因为它同时具有客户端id和机密,并且可以获得访问权限通过使现有用户登录到此应用。有关为什么不应泄露客户端机密的更多信息,请阅读此处-为客户端机密利用讨论创建一个新主题。