ClickHouse集成LDAP实现简单的用户认证

1.这里我的ldap安装的是docker版的

复制代码
docker安装的化就yum就好了
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
使用下面的命令验证
 sudo docker run hello-world
docker pull osixia/openldap:1.5.0
docker pull osixia/phpldapadmin:0.9.0

#服务
docker run \
   -d -p 389:389 -p 636:636 \
  --name ldap-service \
  --restart=always \
  --hostname openldap \
  -v /opt/docker-data/slapd/database:/var/lib/ldap \
  --volume /opt/docker-data/slapd/config:/etc/ldap/slapd.d \
  --env LDAP_ORGANISATION="abc.com" \
  --env LDAP_DOMAIN="abc.com" \
  --env LDAP_BASE_DN="dc=abc,dc=com" \
  --env LDAP_ADMIN_PASSWORD=123456 \
  osixia/openldap:1.5.0

#可视化界面
docker run  \
  -d -p 8000:80 \  
  -p 6443:443 \
  --name ldapadmin \
  --link ldap-service:ldap \
  --env PHPLDAPADMIN_LDAP_HOSTS=ldap \
  --detach osixia/phpldapadmin:0.9.0

参考https://www.cnblogs.com/hahaha111122222/p/17865368.html

登陆上分别创建了对于的组和用户

在clickhouse的配置路径下创建了个data.xml

/wsdck/clickhouse/config/clickhouse-server/config.d

dn那部分根据自己的用户组的去设置吧

复制代码
<yandex>
<ldap_servers>
  <my_ldap_server>
            <host>localhost</host>
            <port>389</port>
            <tls_require_cert>never</tls_require_cert>
            <auth_dn_prefix>cn=</auth_dn_prefix>
            <auth_dn_suffix>,cn=data,cn=technology,ou=depts,dc=abc,dc=com</auth_dn_suffix>
            <enable_tls>no</enable_tls>
        </my_ldap_server>
</ldap_servers>
<users>
         <ldap_user_data>
            <ldap_server>my_ldap_server</ldap_server>
           <!--  <profile>default_profile</profile>
            <quota>default</quota> -->
        </ldap_user_data>
        </users>
<!--
<profiles>
        <default_profile>
            <allow_ddl>1</allow_ddl>
            <readonly>0</readonly>
        </default_profile>
    </profiles>
 <quotas>
        <default>
            <interval>
                <duration>3600</duration>
                <queries>0</queries>
                <errors>0</errors>
                <result_rows>0</result_rows>
                <read_rows>0</read_rows>
                <execution_time>0</execution_time>
            </interval>
        </default>
</quotas> -->
  <user_directories>
        <ldap>
        <server>my_ldap_server</server>
        <roles>
            <ldap_data_role />
        </roles>
        </ldap>
</user_directories>
</yandex>

ldap_data_role 这个是预先在clickhouse里创建好的角色

角色权限控制参考官网的语法

CREATE ROLE | ClickHouse Docs

配置好后重启clickhouse,即可使用对应的用户

这里改一下用户名和密码试试,也是正常登陆

增加用户test,登陆正常

后面学习后再做补充

相关推荐
Mahir082 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
RyFit3 小时前
SpringAI 常见问题及解决方案大全
java·ai
石山代码3 小时前
C++ 内存分区 堆区
java·开发语言·c++
绝知此事4 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
无风听海4 小时前
C# 隐式转换深度解析
java·开发语言·c#
一只大袋鼠4 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git
德思特5 小时前
从 Dify 配置页理解 RAG 的重要参数
java·人工智能·llm·dify·rag
YOU OU6 小时前
Spring IoC&DI
java·数据库·spring
один but you6 小时前
从可变参数到 emplace:现代 C++ 性能优化的核心组合
java·开发语言
是码龙不是码农6 小时前
ThreadPoolExecutor 7 个核心参数详解
java·线程池·threadpool