oauth-2.0 kubeconfig -基于oidc的身份验证

ikfrs5lh  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(295)

下面是我的kubeconfig文件,用于访问kubernetes集群:

kind: ClientConfig
apiVersion: authentication.gke.io/v2alpha1
spec:
  name: dev-corp
  server: https://10.x.x.x:443
  certificateAuthorityData: ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
  authentication:
  - name: oidc
    oidc:
      clientID: aaaaad3-9aa1-33c8-dd0-ddddd6b5bf5
      clientSecret: ccccccccccccccccc-
      issuerURI: https://login.microsoftonline.com/aaaa92-aab7-bbfa-cccf-ddaaaaaaaa/v2.0
      kubectlRedirectURI: http://localhost:12345/callback
      cloudConsoleRedirectURI: http://console.cloud.google.com/kubernetes/oidc
      scopes: offline_access,profile
      userClaim: upn
      userPrefix: '-'
      groupsClaim: groups
  preferredAuthentication: oidc

有不同的OAuth授权类型。
我的理解是,上面的OAuth授权类型是 * 客户端凭据 * 授权类型,这需要客户端ID、客户端密码、令牌URL(issuerURI)、范围
1.字段kubectlRedirectURIcloudConsoleRedirectURIuserClaimuserPrefix的意义是什么?

  1. OIDC与OAuth2有何不同?
  2. oauth2.Config不存储userClaimuserPrefixgroupsClaim信息,如此处所示.... https://github.com/golang/oauth2/blob/master/oauth2.go#L41
    如何使用基于oidc的身份验证将kind:ClientConfig存储到缓存中?例如,可以使用client-go中的API存储api.Config,以写入api.Config,如下所示。
n3h0vuf2

n3h0vuf21#

KUBECTL重定向URL:kubectl oidc登录用于授权的 * 重定向URL*。其格式通常为http://localhost:PORT/callback,其中PORT是将在开发人员工作站上可用的1024以上的任何端口,例如http://localhost:10000/callback。必须向OIDC提供商注册该URL,作为客户机应用程序的授权重定向URL
用户前缀:附加在用户声明前面的前缀,用于防止与现有名称冲突。默认情况下,颁发者前缀附加在为Kubernetes API服务器提供的用户ID后面**(除非用户声明为电子邮件)**。生成的用户标识符为ISSUER_URI#USER。建议使用前缀,但您可以通过设置USER_PREFIX to -禁用该前缀。
用户声明:在客户端配置文件的spec.authentication.oidc.userClaim中配置的声明名称下的令牌中的user identifier
cloudConsoleRedirectURI名称说明情况,OIDC的云重定向URL,例如google https://console.cloud.google.com/kubernetes/oidc

OIDC与OAuth2
What's the difference between OpenID and OAuth?
问题中的文件来自OIDC,您正在使用Oauth比较值,两者的处理方式不同,最好使用Oauth配置文件再次更新问题。
api-server-authentication
您可以选中kubeconfig builder
kubernetes-engine-oidc
如何将带有基于oidc的身份验证的kind:ClientConfig存储到缓存中?
您可以先写入文件,然后再读取,也可以在云存储的某个位置读取

相关问题