我有一个问题,我可以通过 OIDC 登录到我的仪表板,但是没有正确映射 oidc 组信息,我无法访问相应的资源。
基本设置
- K8s 版本:1.19.0
- K8s 设置:1 个主节点 + 2 个工作节点
- 基于 Debian 10 虚拟机
- CNI:印花布
- Louketo 代理作为 OIDC 代理
- OIDC:Keycloak 服务器(Keycloak X [Quarkus])
配置
我已经使用这些参数配置了 K8s apiserver。
kube-apiserver.yaml
- --oidc-issuer-url=https://test.test.com/auth/realms/Test
- --oidc-client-id=test
- --oidc-username-claim=preferred_username
- --oidc-username-prefix="oidc:"
- --oidc-groups-claim=groups
- --oidc-groups-prefix="oidc:"
集群角色绑定
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: "test-cluster-admin"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: "Test"
我使用了以下louketo参数
卢克托代理
/usr/bin/louketo-proxy --discovery-url=$OIDC_DISCOVERY_URL --client-id=$OIDC_CLIENT_ID --client-secret=$OIDC_CLIENT_SECRET -listen=$OIDC_LISTEN_URL --encryption-key=$OIDC_ENCRYPTION_KEY --redirection-url=$OIDC_REDIRECTION_KEY --enable-refresh-tokens=true --upstream-url=$OIDC_UPSTREAM_URL --enable-metrics
我在仪表板中收到以下错误消息。 K8s 错误
replicasets.apps is forbidden: User "\"oidc:\"<user_name>" cannot list resource "replicasets" in API group "apps" in the namespace "default"
我希望你能帮助我解决这个问题,我已经尝试了互联网上的大部分手册,但还没有找到解决方案。
PS:我已经在Keycloak服务器中做了对应的组映射,也验证了组条目被转移。