ldap集成x-pack
ldap配置支持x-pack有两种格式:
1. User Search Mode
2. User DN Templates Mode
由于第一种方式需要明文填入ldap管理员账号信息,我这边采用第二种方案 。
elasticsearch配置文件中添加以下配置:
xpack:
security:
authc:
realms:
ldap1:
type: ldap
order: 0
url: "ldap://ldap.xxxxx.net:389"
user_dn_templates:
- "cn={0},ou=People,dc=ldap,dc=xxxxx,dc=net"
group_search:
base_dn: "ou=kibana,dc=ldap,dc=xxxxx,dc=net"
files:
role_mapping: "/etc/elasticsearch/x-pack/role_mapping.yml" #x-pack角色与ldap账户绑定文件
cache.ttl: 3m #指定用户条目的生存时间
unmapped_groups_as_roles: false
第一种方式配置(不推荐):
xpack:
security:
authc:
realms:
ldap1:
type: ldap
order: 0
url: "ldap://ldap.xxxx.net:389"
bind_dn: "cn=Manager,dc=ldap,dc=xxxxx,dc=net"
bind_password: xxxxx
user_search:
base_dn: "ou=People,dc=ldap,dc=xxxxx,dc=net"
attribute: cn
group_search:
base_dn: "ou=kibana,dc=ldap,dc=xxxxx,dc=net"
files:
role_mapping: "/etc/elasticsearch/x-pack/role_mapping.yml"
cache.ttl: 3m
unmapped_groups_as_roles: false
查看/etc/elasticsearch/x-pack/role_mapping.yml 文件内容:
logRead: #只读,需在kibana面板上创建该角色
- "cn=kibana-software-users,ou=kibana,dc=ldap,dc=xxxxx,dc=net"
superuser: #管理员
- "cn=kibana-software-admin,ou=kibana,dc=ldap,dc=xxxxx,dc=net"
查看kibana上角色信息:
添加角色映射:
superuser:
curl -uelastic -X PUT "localhost:9200/_security/role_mapping/admins?pretty" -H 'Content-Type: application/json' -d'
{
"roles" : [ "superuser" ],
"rules" : { "field" : {
"groups" : "cn=kibana-software-admin,ou=kibana,dc=ldap,dc=safetytaxfree,dc=net"
} },
"enabled": true
}
'
LogRead:
curl -uelastic -X PUT "localhost:9200/_security/role_mapping/basic_users?pretty" -H 'Content-Type: application/json' -d'
{
"roles" : [ "LogRead" ],
"rules" : { "field" : {
"groups" : "cn=kibana-software-users,ou=kibana,dc=ldap,dc=safetytaxfree,dc=net"
} },
"enabled": true
}
'
配置完成,默认 xpack 每五秒会检查一次 role_mapping 文件的变化,修改用户权限之后不需要重新加载ES。
使用ldap账号检验角色权限:curl -XGET -uxxxx.xxx@xxx.com 'localhost:9200/_xpack/security/_authenticate?pretty'
ldap分组:
赠人玫瑰,手有余香,如果我的文章有幸能够帮到你,麻烦帮忙点下右下角的推荐,谢谢!
作者: imcati
出处: https://www.cnblogs.com/imcati/>
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接