我试图如下设置OpenID Connect(OIDC)身份验证的Kubernetes 1.13:
--oidc-issuer-url=https://my_keycloak/auth/realms/my_realm
kube-apiserver
等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的stdout都保持沉默。因此,在哪里可以看到更多日志记录信息来识别OIDC身份验证可能出了问题?UPDATE 客户端(
--v
)或服务器(例如API服务器)上的 keyctl
选项在某种程度上有所帮助。
最佳答案
如果您使用的是email
声明,那么Kubernetes要求您的email_verified
声明为true
。在Keycloak中,默认情况下将其设置为false
。
资料来源:https://github.com/kubernetes/kubernetes/search?q=email_verified&unscoped_q=email_verified
关于kubernetes - Kubernetes OpenID Connect身份验证失败时记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54484105/