下面是我的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.字段kubectlRedirectURI
、cloudConsoleRedirectURI
、userClaim
、userPrefix
的意义是什么?
- OIDC与OAuth2有何不同?
oauth2.Config
不存储userClaim
和userPrefix
、groupsClaim
信息,如此处所示.... https://github.com/golang/oauth2/blob/master/oauth2.go#L41
如何使用基于oidc的身份验证将kind:ClientConfig
存储到缓存中?例如,可以使用client-go中的API存储api.Config
,以写入api.Config
,如下所示。
1条答案
按热度按时间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存储到缓存中?
您可以先写入文件,然后再读取,也可以在云存储的某个位置读取