好的想法是十分钱一打,真正无价的是能够实现这些想法的人。

极限网关无缝集成ldap,哇哈哈

Elasticsearch | 作者 yangmf2040 | 发布于2022年05月12日 | | 阅读数:1670

本文目的为例验证极限网关和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
    1.png

手工验证下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运行正常:

2.png

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

3.png

修改成自己的环境:

修改 set_basic_auth
flow:
  - 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

5.png

  1. 测试ldap是否正常
  2. 直接访问网关,使用ldap中的用户 curl localhost:8000 -u hackers:dogood

6.png

正常返回es的信息 搜索下

61.png

  1. kibana连接网关,输入ldap用户名和密码后登录到Elastic
    kibana 配置网关的地址和ldap中的用户
    elasticsearch.hosts: ["http://127.0.0.1:8000"]
    elasticsearch.username: "hackers"
    elasticsearch.password: "dogood"

    启动kibana后,用ladap用户登录

7.png

71.png

72.png

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

至此,本次测试就结束了,ldap功能集成功能正常。而且本方案对Elasticsearch集群无侵入,部署简单。顺手翻了下网站,其实网关还有很多其他高大上的功能:跨站数据查询,高可用,在线查询修改等。阔以,一举多得。 期待后续为各个ldap用户增加到Elastic用户的映射就更加完美了。 目前准备预发环境搞起来。发文冒个泡,希望有在使用的小伙伴一起多交流。


[尊重社区原创,转载请保留或注明出处]
本文地址:http://elasticsearch.cn/article/14596


0 个评论

要回复文章请先登录注册