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

后面学习后再做补充

相关推荐
侠客行031719 小时前
Mybatis连接池实现及池化模式
java·mybatis·源码阅读
蛇皮划水怪19 小时前
深入浅出LangChain4J
java·langchain·llm
老毛肚21 小时前
MyBatis体系结构与工作原理 上篇
java·mybatis
风流倜傥唐伯虎21 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Yvonne爱编码21 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚21 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言
你这个代码我看不懂21 小时前
@ConditionalOnProperty不直接使用松绑定规则
java·开发语言
fuquxiaoguang1 天前
深入浅出:使用MDC构建SpringBoot全链路请求追踪系统
java·spring boot·后端·调用链分析
琹箐1 天前
最大堆和最小堆 实现思路
java·开发语言·算法
__WanG1 天前
JavaTuples 库分析
java