跳到主要内容
跳到主要内容

配置 ClickHouse 使用 LDAP 进行认证和角色映射

Not supported in ClickHouse Cloud
备注

此页面不适用于 ClickHouse Cloud。此处文档记录的功能在 ClickHouse Cloud 服务中不可用。 有关更多信息,请参阅 ClickHouse 的 Cloud Compatibility 指南。

ClickHouse 可以配置为使用 LDAP 来验证 ClickHouse 数据库用户。 本指南提供了一个简单的示例,演示如何将 ClickHouse 与 LDAP 系统集成,以便对公开可用的目录进行身份验证。

1. 在 ClickHouse 中配置 LDAP 连接设置

  1. 测试您与该公共 LDAP 服务器的连接:

    回复会类似于:

  2. 编辑 config.xml 文件并添加以下内容以配置 LDAP:

    备注

    <test_ldap_server> 标签是一个任意标签,用于标识特定的 LDAP 服务器。

    以上是使用的基本设置:

    参数描述示例
    hostLDAP 服务器的主机名或 IPldap.forumsys.com
    portLDAP 服务器的目录端口389
    bind_dn用户的模板路径uid={user_name},dc=example,dc=com
    enable_tls是否使用安全 LDAPno
    tls_require_cert是否要求连接的证书never
    备注

    在此示例中,由于公共服务器使用 389 并且不使用安全端口,因此我们在演示中禁用 TLS。

    备注

    查看 LDAP 文档页面 以获取有关 LDAP 设置的更多详细信息。

  3. <user_directories> 部分中添加 <ldap> 部分以配置用户角色映射。此部分定义了用户何时通过身份验证以及用户将获得什么角色。在此基本示例中,任何向 LDAP 进行身份验证的用户将获得在 ClickHouse 后续步骤中定义的 scientists_role。该部分应类似于:

    以上是使用的基本设置:

    参数描述示例
    server在前面的 ldap_servers 部分中定义的标签test_ldap_server
    roles在 ClickHouse 中定义的角色名称,将映射给用户scientists_role
    base_dn开始搜索用户组的基本路径dc=example,dc=com
    search_filter识别选择组以映射用户的 LDAP 搜索过滤器(&(objectClass=groupOfUniqueNames)(uniqueMember={bind_dn}))
    attribute应返回的属性名称cn
  4. 重启 ClickHouse 服务器以应用设置。

2. 配置 ClickHouse 数据库角色和权限

备注

本节中的程序假定已启用 ClickHouse 中的 SQL 访问控制和账户管理。要启用,请查看 SQL 用户和角色指南

  1. 在 ClickHouse 中创建一个角色,其名称与 config.xml 文件的角色映射部分中使用的名称相同。

  2. 授予角色所需的权限。以下语句授予通过 LDAP 身份验证的任何用户管理权限:

3. 测试 LDAP 配置

  1. 使用 ClickHouse 客户端登录

    备注

    使用步骤 1 中的 ldapsearch 命令查看目录中可用的所有用户,所有用户的密码均为 password

  2. 测试用户是否正确映射到 scientists_role 角色并具有管理权限。

总结

本文演示了配置 ClickHouse 以对 LDAP 服务器进行认证和映射到角色的基础知识。 还可以配置 ClickHouse 中的单个用户,但不配置自动角色映射的用户进行 LDAP 身份验证。 LDAP 模块还可以用于连接到 Active Directory。