Rancher 对接 KeyCloak OIDC
Rancher 支持对接 KeyCloak 进行用户身份认证,此处测试基于 OIDC 协议。
环境信息:
- Rancher: v2.9.5-ent
- KeyCloak: 26.4.5
OIDC 协议
OIDC 全称为 OpenID Connect,为标识身份验证协议,也是开放授权 OAuth2.0 的扩展,用于用户登录访问应用时进行身份验证和授权的过程。
OAuth2.0 本身是授权协议,只负责让应用拿到资源访问权限,不负责识别用户身份。
而 OIDC 在 OAuth2.0 之上加了一层身份认证,让应用可以知道用户身份并进行登录。
部署 KeyCloak
参考文档部署:https://www.keycloak.org/getting-started/getting-started-kube
部署后,创建一个自签名证书给 KeyCloak Ingress 挂载,可参考文档创建:https://docs.rancher.cn/docs/rancher2.5/installation/resources/advanced/self-signed-ssl/
1 | kubectl -n keycloak create secret tls keycloak-tls --cert=tls.crt --key=tls.key |
默认用户名密码为 admin,登陆后需要创建一个新的管理员帐户进行使用。
由于此处 KeyCloak 使用的是自签名证书,Rancher 需要配置信任私有 CA 证书:https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/installation-references/helm-chart-options#additional-trusted-cas
配置 KeyCloak
创建一个 Realm:

在新的 Realm 创建一个 admin 的 role:

创建一个 admin 用户对其进行授权:

前四个 role 权限是为了后续能够在 Rancher 检索到 KeyCloak 的用户和用户组:

创建一个 OIDC Client:



创建完成后,点击对应的 Client -> Client scopes -> https://<rancher_url>/v1-saml/keycloak/saml/metadata-dedicated:

点击 Configure a new mapper,创建第一个 Mapper:


点击 Add Mapper -> By Configuration,创建第二个 Mapper:

点击 Add Mapper -> By Configuration,创建第三个 Mapper:

创建完成:

配置 Rancher 对接 KeyCloak
在 Rancher 选择 KeyCloak OIDC:

Client ID/Secret 根据 KeyCloak 创建的 Client 进行填写,Client Secret 可以在对应的 Client -> Credentials 获取:

下面 Endpoints 的部份,由于该版本 Rancher 拼接的 KeyCloak 地址与实际地址不一致,所以需要到 KeyCloak 获取正确的地址:

找到 issuer 和 authorization_endpoint 即可:

回到 Rancher 完成剩下的配置,点击开启:

随后会跳出一个弹窗,此时通过前面创建的 admin 用户进行登录:

完成认证后,开启成功:

在 KeyCloak 创建一个新用户:

通过 OIDC 登录 Rancher:

登录成功:

进行授权,验证是否可以搜索到该用户:

Rancher 对接 KeyCloak OIDC
https://warnerchen.github.io/2025/11/19/Rancher-对接-KeyCloak-OIDC/
install_url to use ShareThis. Please set it in _config.yml.