如何配置kubectl以使用OIDC(Azure AD)连接到EKS



我已经将Azure AD应用程序配置为OIDC提供程序,并在配置EKS中关联OIDC。现在我想使用kubectl访问,但无法使用以下配置。

错误:无法连接到服务器:没有有效的id令牌,并且在没有刷新令牌的情况下无法刷新

kubectl config set-credentials aman 
--auth-provider=oidc 
--auth-provider-arg=idp-issuer-url=<my azure one> 
--auth-provider-arg=client-id=<my client id> 
--auth-provider-arg=client-secret=<my secret id>

而我可以使用相同细节的kubectl的oidc插件进行连接。我做错了什么?

我不明白它为什么要求刷新令牌。另外,我没有刷新令牌。

注意:我遵循EKS官方文档进行配置https://docs.aws.amazon.com/eks/latest/userguide/authenticate-oidc-identity-provider.html和Kubernetes官方文档设置kubectlhttps://kubernetes.io/docs/reference/access-authn-authz/authentication/#using-kubectl

有人能建议我在kubectl中不需要使用任何oidc插件吗?

所以,我一直在做一些研究,我想我找到了答案。我发布我的发现,这样如果有人在同一个问题上挣扎,它会有所帮助。

Kubernetes使用kubectl进行身份验证的方式是使用bear_token。现在,bear_token由access_token和refresh_token组成。但我们只能有id代币,这里有oidc插件。根据Kubernetes官方文档。https://kubernetes.io/docs/reference/access-authn-authz/authentication/

The first option is to use the kubectl oidc authenticator, which sets the id_token as a bearer token for all requests and refreshes the token once it expires.

换句话说,由于EKS只提供OIDC的身份验证,因此它只需要id_token。然后我们需要oidc插件的帮助,它可以将我们的id_token设置为bear_token。因此,我们不需要为oidc验证器插件提供任何刷新令牌。

p.S.

授权稍后由RBAC功能负责。在我的案例中,我将AD组映射到具有角色和角色绑定的Kubernetes组。

相关内容

  • 没有找到相关文章

最新更新