文章目录
- 一、新建 ELK 相关用户组
- 二、配置 Elasticsearch
- 2.1 修改 elasticsearch.yml 配置
- 2.2 使用 API 接口建立角色和用户映射
- 三、Kibana 验证用户登录

一、新建 ELK 相关用户组
由于后续要将 LDAP 的用户与 ELK 的角色进行映射,所以需先创建几个以 ELK 的角色命名的用户组。
步骤如下:
- 创建
elk.ldif
文件并编辑内容:
vim elk.ldif
在 elk.ldif
文件中添加以下内容:
dn: ou=elk,ou=Group,dc=aex,dc=com
ou: elk
objectClass: organizationalUnit
objectClass: top
dn: cn=superuser,ou=elk,ou=Group,dc=aex,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: superuser
uniqueMember: cn=lichunlin,ou=People,dc=aex,dc=com
dn: cn=kibana_system,ou=elk,ou=Group,dc=aex,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: kibana_system
uniqueMember: cn=zengxiaoyan,ou=People,dc=aex,dc=com
dn: cn=logs_viewer,ou=elk,ou=Group,dc=aex,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: logs_viewer
uniqueMember: cn=zhangsan,ou=People,dc=aex,dc=com
- 将
elk.ldif
文件中的内容添加到 LDAP 中:
ldapadd -x -D "cn=root,dc=aex,dc=com" -W -f elk.ldif
二、配置 Elasticsearch
2.1 修改 elasticsearch.yml 配置
为增加 LDAP 验证,需在 elasticsearch.yml文件中新增以下内容:
vim /usr/local/elk/elastic/config/elasticsearch.yml
在文件中添加:
xpack:
security:
authc:
realms:
ldap:
ldap1:
order: 0
url: "ldap://192.168.0.12:389"
bind_dn: "cn=root, dc=aex, dc=com"
user_search:
base_dn: "dc=aex,dc=com"
filter: "(cn={0})"
group_search:
base_dn: "dc=aex,dc=com"
files:
role_mapping: "/usr/local/elk/elastic/config/role_mapping.yml"
unmapped_groups_as_roles: false
出于安全考虑,LDAP 的管理员账号不在 elasticsearch.yml
配置文件中配置,而是使用 elasticsearch-keystore
进行存储。
注意事项:
使用 Elasticsearch 的运行用户执行 elasticsearch-keystore
命令,若使用 root
用户运行,会改变配置文件中 elasticsearch-keystore
的属主,导致 Elasticsearch 启动失败。
/usr/local/elk/elastic/bin/elasticsearch-keystore add xpack.security.authc.realms.ldap.ldap1.secure_bind_password
2.2 使用 API 接口建立角色和用户映射
示例 1:超级用户
- 接口:
/_security/role_mapping/superuser
- 请求头:
Content-Type: application/json
- 请求体:
{
"roles": ["superuser"],
"rules": { "field": {
"groups": "cn=superuser,ou=elk,ou=Group,dc=aex,dc=com"
} },
"enabled": true
}
示例 2:普通用户
- 接口:
/_security/role_mapping/logs_viewer
- 请求头:
Content-Type: application/json
- 请求体:
{
"roles": ["logs_viewer", "kibana_user"],
"rules": { "field": {
"groups": "cn=logs_viewer,ou=elk,ou=Group,dc=aex,dc=com"
} },
"enabled": true
}
可在 Kibana 上查看映射关系:
三、Kibana 验证用户登录
-
超级用户登录示例:
-
普通用户登录示例:
-
登录验证界面示例: