简介

本文章主要介绍了Elasticsearch 接入微软的Active Directory(域控)作为身份认证。

LDAP认证接入可参考官方文档

使用环境:Rocky Linux9、Elasticsearch 8、Windows Server 2022

注意:由于此功能基础版无法使用,需要白金版本,可参考教程

修改配置文件

vim /etc/elasticsearch/elasticsearch.yml 

# ad1

xpack:
  security:
    authc:
      realms:
        active_directory:
          ad1:
            order: 0 
            domain_name: songxwn.com
            url: ldap://songxwn:389
            bind_dn: administrator@songxwn.com
  • domain_name和url选项修改为自己的域名。

  • bind_dn修改为域用户。

注意:如果是集群,需要每一个节点都修改此配置。(注意所有节点的DNS服务器都要指向域控制器)

配置bind账号的密码

/usr/share/elasticsearch/bin/elasticsearch-keystore add \ xpack.security.authc.realms.active_directory.ad1.secure_bind_password

# 配置ad1下的用于搜索的域账号密码。
  • 密码会存储到 /etc/elasticsearch/elasticsearch.keystore

注意:如果修改了keystore,那么集群上的每一个节点都要同步。

密钥库管理参考官方文档。(增加、列出、查看明文、删除等)

配置用户组映射

命令操作-Kibana>http://127.0.0.1:5601/app/dev_tools#/console

PUT /_security/role_mapping/admins
{
  "roles" : [ "monitoring" , "user" ],
  "rules" : { "field" : {
    "groups" : "cn=admins,cn=Users,dc=songxwn,dc=com" 
  } },
  "enabled": true
}

# 

# 映射安全组,dc=songxwn,dc=com 为域名。cn=admins,cn=Users 代表路径,Users是组织单元,而admins为安全组。
admins安全组在Users组织单元下。

# 在AD中,添加到安全组的用户即可登录,并映射到相关角色。

# 用户可不带域名后缀登录。

# 具体路径查看,可以参考AD上的ADSI编辑器工具。


Web操作(推荐)-Kibana>
http://127.0.0.1:5601/app/management/security/role_mappings


映射安全组,dc=songxwn,dc=com 为域名。cn=admins,cn=Users 代表路径,Users是组织单元,而admins为安全组。 admins安全组在Users组织单元下。 

  • 在AD中,添加到安全组的用户即可登录,并映射到相关角色。 

  • 用户可不带域名后缀登录。 

  • 具体路径查看,可以参考AD上的ADSI编辑器工具。

参考

https://www.elastic.co/guide/en/elasticsearch/reference/current/active-directory-realm.html