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,登陆正常

后面学习后再做补充

相关推荐
_extraordinary_3 分钟前
Java 类和对象
java·开发语言
Aliano2177 分钟前
TestNGException ClassCastException SAXParserFactoryImpl是Java自带的Xerces解析器——解决办法
java·开发语言·python
进击的小白菜18 分钟前
用Java实现单词搜索(LeetCode 79)——回溯算法详解
java·算法·leetcode
越来越无动于衷34 分钟前
手写tomcat:基本功能实现(3)
java·tomcat
Uranus^37 分钟前
使用Spring Boot和Spring Security构建安全的RESTful API
java·spring boot·spring security·jwt·restful api
qq_5432485238 分钟前
Tomcat的调优
java·tomcat
Mcworld85744 分钟前
String的一些固定程序函数
java
越来越无动于衷44 分钟前
手写tomcat:基本功能实现(4)
java·tomcat
编程乐学(Arfan开发工程师)1 小时前
05、基础入门-SpringBoot-HelloWorld
java·spring boot·后端
小智学长 | 嵌入式1 小时前
进阶-数据结构部分:2、常用排序算法
java·数据结构·算法