使用Grafana作为团队监控系统的图表组件,为了安全还需配置使用团队基于OpenLDAP的统一用户认证。 Grafana从2.1开始支持LDAP集成,但是在参考官方文档Grafana LDAP Authentication进行配置时遇到了一些问题,这里做一个简单的记录,便于后边查看。

在grafana的主配置文件grafana.ini中开启LDAP认证:

1[auth.ldap]
2enabled = true
3config_file = /etc/grafana/ldap.toml
  • config_file指定grafana的ldap配置文件ldap.toml的具体位置

ldap.toml配置文件的内容如下:

 1[[servers]]
 2host = "127.0.0.1"
 3port = 389
 4use_ssl = false
 5start_tls = false
 6ssl_skip_verify = false
 7
 8bind_dn = "cn=Manager,dc=frognew,dc=com"
 9bind_password = 'thepassword'
10search_filter = "(cn=%s)"
11search_base_dns = ["ou=People,dc=frognew,dc=com"]
12group_search_base_dns = ["ou=Group,dc=frognew,dc=com"]
13group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))"
14
15[servers.attributes]
16name = "givenName"
17surname = "sn"
18username = "cn"
19member_of = "cn"
20email =  "email"
21
22
23[[servers.group_mappings]]
24group_dn = "grafana-admin"
25org_role = "Admin"
26
27[[servers.group_mappings]]
28group_dn = "grafana-editor"
29org_role = "Editor"
30
31[[servers.group_mappings]]
32
33group_dn = "grafana-viewer"
34org_role = "Viewer"
  • hostport指定LDAP Server的地址和端口
  • 因为我们使用的OpenLDAP,是没有memberOf属性的POSIX schema,所以获取用户的Group信息时需要另外一个查询,通过group_search_base_dnsgroup_search_filter,同事需要设置member_of = "cn"
  • servers.group_mappings中指定LDAP中Group和Grafan中org_role的对应关系,注意这里需要和配置成LDAP中Group的cn,这里配置的是grafana-admingrafana-editorgrafana-viewer,这点和官方文档Grafana LDAP Authentication中给的例子是不一样的。

参考