简介
本文章主要介绍了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