OpenID Connect 身份验证

配置 minikube 以使用 OpenID Connect 身份验证

可以配置 minikube 中的 kube-apiserver 以支持 OpenID Connect 身份验证。

在此处阅读有关 Kubernetes 的 OpenID Connect 身份验证的更多信息: https://kubernetes.ac.cn/zh-cn/docs/reference/access-authn-authz/authentication/#openid-connect-tokens

配置 API 服务器

可以使用 minikube start 命令上的 --extra-config 标志将配置值传递给 API 服务器。有关更多详细信息,请参阅 configuring_kubernetes.md

以下示例配置您的 Minikube 集群以支持 RBAC 和 OIDC

minikube start \
  --extra-config=apiserver.authorization-mode=RBAC \
  --extra-config=apiserver.oidc-issuer-url=https://example.com \
  --extra-config=apiserver.oidc-username-claim=email \
  --extra-config=apiserver.oidc-client-id=kubernetes-local

请注意,如 Kubernetes 文档中所述,对于 --extra-config=apiserver.oidc-issuer-url 标志,仅接受使用 https:// 方案的 URL。否则 kube-apiserver 将不会启动。

配置 kubectl

您可以使用 kubectl oidc 身份验证器创建 kubeconfig,如 Kubernetes 文档所示: https://kubernetes.ac.cn/zh-cn/docs/reference/access-authn-authz/authentication/#option-1-oidc-authenticator

minikube start 已经创建了一个包含 cluster 的 kubeconfig,为了将其与您的 oidc 身份验证器 kubeconfig 一起使用,您可以运行

kubectl config set-context kubernetes-local-oidc --cluster=minikube --user username@example.com
Context "kubernetes-local-oidc" created.
kubectl config use-context kubernetes-local-oidc

为了使新上下文正常工作,您至少需要在集群中创建 RoleRoleBinding,以授予 oidc-username-claim 中包含的 subjects 权限。


最后修改时间:2020 年 7 月 23 日:更新 OIDC 文档。(de65edffd)