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

导读:来自Elastic中文社区的分享,原文地址:https://elasticsearch.cn/article/14596

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

  • 直接访问网关,走ldap验证
  • kibana连接网关,走ldap验证
    最近公司对Elasticsearch集群安全抓的紧了,免费的用户名密码固然是好,但还是免不了得给不同的部门、应用创建账户,不想搞。直接LDAP不完了吗?难道没有别的方案了吗?一圈打听下来,还真有。

实验步骤:

  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_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

  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用户的映射就更加完美了。
目前准备预发环境搞起来。发文冒个泡,希望有在使用的小伙伴一起多交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值