本文永久链接: https://www.xtplayer.cn/rancher/authentication/rancher2-keycloak-authentication/

版本支持: Rancher v2.1.0+

注意 在开始之前,请熟悉 外部身份验证配置和主要用户 的概念。

Keycloak 配置

  1. 新建一个 Clients

    参数配置:

    • Client ID:https///v1-saml/keycloak/saml/metadata
    • Client Protocol:saml
  2. 配置 clients 基本配置

    参数配置:

    • Client ID:https//<rancher_server_url>/v1-saml/keycloak/saml/metadata
    • Name:clientName
    • Enabled:on
    • Sign Documents:on
    • Sign Assertions:on
    • Valid Redirect URIs:https://<rancher_server_url>/v1-saml/keycloak/saml/acs
    • 除了三个开关为打开状态,其余全部关闭
  3. 配置 client mappers

    在 Mappers 菜单中点击创建,然后设置名称、选择类型、设置 SAML Attribute Name 和 Property。注意 SAML Attribute Name 和 Property 很关键,建议与 mappers 名称保持相同,其他参数保持默认。

    分别创建 username uid name roles,最终效果如下:

  4. 获取 xml

    访问 url 拿到 client xml 并进行改造,url 地址:http://<keycloak_url>/auth/realms/master/protocol/saml/descriptor

  5. 改造 xml:

    修改 EntitiesDescriptorEntityDescriptor,删除 EntityDescriptor

    改造后的 xml:

Rancher UI 配置

  1. Openssl 生成自签名证书命令:

    openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout myservice.key -out myservice.cert
  2. 认证账号配置对应属性关系:

    • Display Name Field ≫ name

    说明:该参数传递领域名称

    • User Name Field ≫ username

    说明:该参数传递用户名

    • UID Field ≫ username

    说明:该参数传递 UID

    • Groups Field ≫ roles

    说明:改参数传递用户组

如果以上配置都正确,保存后跳转 keycloak 登陆界面,登陆即可保存配置

对接后使用说明

  1. keycloak 中创建用户后并不会直接同步到 Rancher 中,需要登录一次 rancher 才会同步到 rancher 中的用户列表;

  2. 新用户第一次登陆赋予的 rancher 角色是 rancher 中定义的新用户默认角色;

  3. 登陆后同步到 rancher 用户列表中,可以使用管理账户在 rancher 中管理该用户的角色权限