Кубернетес OIDC: группы игнорируются? - PullRequest
0 голосов
/ 04 июля 2019

В настоящее время я пытаюсь подключить сервер API к моей клавиатуре.

Когда я использую oidc-информацию от пользователя, все работает нормально, но группы, похоже, игнорируются Аписервер работает с параметром

     --oidc-ca-file=/etc/kubernetes/ssl/ca.pem
     --oidc-client-id=kubernetes
     --oidc-groups-claim=groups
     --oidc-groups-prefix=oidc:
     --oidc-issuer-url=https://keycloak.example.com/auth/realms/master
     --oidc-username-claim=preferred_username
     --oidc-username-prefix=oidc:

Я добавил ClusterRole и ClusterRoleBinding

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: developer-role
rules:
  - apiGroups: [""]
    resources: ["namespaces","pods"]
    verbs: ["get", "watch", "list"]

---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: developer-crb
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: developer-role
subjects:
- kind: User
  name: "oidc:myuser"
  apiGroup: rbac.authorization.k8s.io

и для моего пользователя «myuser» все прекрасно работает.

Но когда я изменяю привязку ClusterRoleBinding к группе subjet

....
subjects:
- kind: User
  name: "oidc:group1"
  apiGroup: rbac.authorization.k8s.io
...

Я получаю запрещено.

Я попытался отладить токен jwt, и группа, кажется, включена:

{
...
  "groups": [
    "group1",
    "group2",
    "group3"
  ],
...
}

Есть идеи, почему мои группы игнорируются / моя ClusterRoleBinding не работает?

1 Ответ

2 голосов
/ 04 июля 2019
....
subjects:
- kind: User
  name: "oidc:group1"
  apiGroup: rbac.authorization.k8s.io
...

должно быть:

....
subjects:
- kind: Group
  name: "oidc:group1"
  apiGroup: rbac.authorization.k8s.io
...
...