1

OIDC 経由でダッシュボードにログオンできるという問題がありますが、oidc グループ情報が正しくマッピングされず、対応するリソースにアクセスできません。

基本設定

  • K8s バージョン: 1.19.0
  • K8s セットアップ: 1 つのマスター + 2 つのワーカー ノード
  • Debian 10 VM に基づく
  • CNI: キャリコ
  • OIDC プロキシとしての Louketo プロキシ
  • 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:"

ClusterRoleBinding

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 サーバーで対応するグループ マッピングを実行し、グループ エントリが転送されることも確認しました。

4

2 に答える 2