简介

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

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

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

注意:由于此功能基础版无法使用,需要白金版本,可参考教程:https://songxwn.com/Elasticsearch-x-pack-core/

ELK系列文章:https://songxwn.com/categories/linux/ELK/

修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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: [emailprotected]

  • domain_name和url选项修改为自己的域名。
  • bind_dn修改为域用户。

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

配置bind账号的密码

1
2
3
4
/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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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