使用Google作为OIDC提供者,而不会泄漏kubernetes中的客户端机密

Alo*_*ngh 5 authentication google-oauth openid-connect kubernetes

我们只有一个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>
Run Code Online (Sandbox Code Playgroud)

我们不希望将用户机密泄露给用户,因为当开发人员离开组织时,客户机密将被泄露,并且可能被滥用来模仿。

请建议如何使用google作为OIDC提供程序来在kubernetes集群中对用户进行身份验证,而又不泄露客户端机密。

Mal*_*ata 0

client_secret现在对于 k8s oidc 配置是可选的,这意味着它可以支持公共客户端(带或不带 client_secret)和机密客户端(带 client_secret,每个 kubectl 用户)。

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