写点什么

如何使用极限网关无缝集成 LDAP 的介绍

作者:极限实验室
  • 2022 年 5 月 15 日
  • 本文字数:1443 字

    阅读完需:约 5 分钟

如何使用极限网关无缝集成 LDAP 的介绍

本文目的为例验证极限网关和 ldap 之间的集成功能:

  • 直接访问网关,走 ldap 验证

  • kibana 连接网关,走 ldap 验证最近公司对 Elasticsearch 集群安全抓的紧了,免费的用户名密码固然是好,但还是免不了得给不同的部门、应用创建账户,不想搞。直接 LDAP 不完了吗?领导说“官方 ldap 要买 license 这么些节点得 50w 左右。” 我擦,难道没有别的方案了吗?一圈打听下来,还真有。

实验步骤:

  1. 既然是验证 ldap,肯定要先准备个 ldap 访问 https://github.com/glauth/glauth,下载对应的软件:https://github.com/glauth/glauth/releases 下载 ldap 的配置文件:https://github.com/glauth/glauth/raw/master/v2/sample-simple.cfg 运行 ldap:./glauth64 -c sample-simple.cfg


手工验证下 ldap 是否正常:ldapsearch -LLL -H ldap://localhost:3893 -D cn=serviceuser,ou=svcaccts,dc=glauth,dc=com -w mysecret -x -bdc=glauth,dc=com cn=hackers 能正常返回 hackers 的信息,则 ldap 运行正常:



  1. 配置极限网关下载极限网关:http://release.infinilabs.com/gateway/snapshot/本次测试下载的最新版本:gateway-1.6.0_SNAPSHOT-643 下载完后,去 sample 里找下 ldap 的配置。


修改成自己的环境:


修改 set_basic_authflow:  - name: hello_world    filter:      - ldap_auth:          host: "localhost"          port: 3893          bind_dn: "cn=serviceuser,ou=svcaccts,dc=glauth,dc=com"          bind_password: "mysecret"          base_dn: "dc=glauth,dc=com"          user_filter: "(cn=%s)"          group_attribute: "ou"          bypass_api_key: true      - set_basic_auth:          username: elastic          password: password
修改elasticsearch资源elasticsearch: - name: 717 enabled: true endpoints: - http://192.168.56.3:7171 basic_auth: username: elastic password: password - name: logging enabled: false endpoints: - http://192.168.3.188:9206 basic_auth: username: elastic password: Bp2HyArQDd+5PdgEJ4QH

pipeline: # pipelines for logging# - name: consume-request_logging_index-to-backup# auto_start: true# keep_running: true# processor:# - json_indexing:# index_name: "test-gateway_requests"# elasticsearch: "logging"# input_queue: "request_logging"
复制代码


启动网关:./gateway-linux-amd64 -config sample-configs/elasticsearch-with-ldap.yml



  1. 测试 ldap 是否正常

  2. 直接访问网关,使用 ldap 中的用户 curl localhost:8000 -u hackers:dogood


正常返回 es 的信息搜索下



  1. kibana 连接网关,输入 ldap 用户名和密码后登录到 Elastic


kibana 配置网关的地址和ldap中的用户elasticsearch.hosts: ["http://127.0.0.1:8000"]elasticsearch.username: "hackers"elasticsearch.password: "dogood"
复制代码


启动 kibana 后,用 ladap 用户登录






逻辑:ldap 验证通过后,使用 set_basic_auth 中设置的用户名和密码登录到 Elasticsearch


至此,本次测试就结束了,ldap 功能集成功能正常。而且本方案对 Elasticsearch 集群无侵入,部署简单。顺手翻了下网站,其实网关还有很多其他高大上的功能:跨站数据查询,高可用,在线查询修改等。阔以,一举多得。期待后续为各个 ldap 用户增加到 Elastic 用户的映射就更加完美了。


目前准备预发环境搞起来。发文冒个泡,希望有在使用的小伙伴一起多交流。

用户头像

简单、易用、极致、创新 2021.11.22 加入

极限科技数据实验室

评论

发布
暂无评论
如何使用极限网关无缝集成 LDAP 的介绍_elasticsearch_极限实验室_InfoQ写作社区