kubernetes - Kubernetes OpenID Connect 身份验证失败时的日志
问题描述
我尝试为 OpenID Connect (OIDC) 身份验证设置 Kubernetes 1.13,如下所示:
- 安装 Keycloak 服务器
- 添加了命令行选项
--oidc-issuer-url=https://my_keycloak/auth/realms/my_realm
等kube-apiserver
- 在 kubeconfig 中存储 id 令牌
users.user.auth-provider.config.client-id
等my_user
根据我对文档的阅读,kubectl
现在应该能够以my_user
. 然而,kubectl get nodes
说:
error: You must be logged in to the server (Unauthorized)
并curl -k https://api_server:6443/api/v2/nodes --header "Authorization: Bearer $id_token"
说:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "Unauthorized",
"reason": "Unauthorized",
"code": 401
}
kubectl logs $kube_apiserver -n kube-system
, journalctl -u kubelet.service
, 和 Keycloak 的标准输出都是无声的。那么我在哪里可以看到更多的日志信息来辨别 OIDC 身份验证可能出错的地方呢?
--v
客户端( )或服务器(例如 API 服务器)上的UPDATE选项在keyctl
一定程度上有所帮助。
解决方案
如果您使用email
声明,Kubernetes 要求您的email_verified
声明为true
. 在 Keycloak 中,默认设置为false
.
来源:https ://github.com/kubernetes/kubernetes/search?q=email_verified&unscoped_q=email_verified
推荐阅读
- apache-spark - Apache Spark 无法读取使用流式作业编写的 parquet 文件夹
- c# - PrivateFontCollection 系列不可靠,迭代次数越多
- c++ - constexpr 适用于 Ubuntu,但不适用于 MacOS
- mongodb - MongoDB外壳安装
- python - 我该如何解决这个关于 215:Assertion failed 的问题?
- java - 单击另一个活动时如何发送自定义arraylist的列表项的数据?
- email - 如何使用 IMAP 跟踪电子邮件的阅读状态
- ios - 如何使用委托传递通用可解码数据
- node.js - 全局设置 chai 配置(所有测试一次)
- angularjs - 使用 ng-include 加载不同视图时如何捕获 Internet 断开连接错误