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