OpenID Connect 身份验证

配置 minikube 使用 OpenID Connect 身份验证

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

有关 Kubernetes OpenID Connect 身份验证的更多信息,请参阅此处:https://kubernetes.ac.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/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

为了使新上下文起作用,您至少需要在集群中创建一个 Role 和一个 RoleBinding,以授予 oidc-username-claim 中包含的 subjects 权限。


上次修改时间:2020 年 7 月 23 日:Update OIDC documentation. (de65edffd)