Grafana:将组与LDAP集成

  • 本文关键字:LDAP 集成 Grafana grafana
  • 更新时间 :
  • 英文 :


我需要一些帮助集成Grafana和LDAP。假设我有一个在LDAP中的小组,需要映射到Grafana组织的" MyGroup"。下面的ldap.conf是否具有正确的配置,以便如果用户"抹布CHO"是MyGroup的成员,则用户将成为Grafana中MyGroup org的管理员?我尝试了以下配置,并且用户在grafana中可见,但是用户似乎不是Grafana中" myGroup"组织的一部分。

ldap entry:
dn: cn=MyGroup,ou=root
cn: MyGroup
objectClass: groupOfNames
member: cn=Rag Cho,ou=root

grafana ldap.conf的一部分:

...
search_base_dns = ["ou=root"]
group_search_filter = "(&(objectClass=groupOfNames)(member=%s))"
group_search_base_dns = ["ou=root"]
[servers.attributes]
name = "givenName"
surname = "sn"
username = "uid"
member_of = "cn" # is cn value correct or should it be member?
email =  "mail"
[[servers.group_mappings]]
group_dn = "cn=MyGroup,ou=root"
org_role = "Admin"
...

在ldap.toml中启用 verbose_logging = true。连接时查看Grafana日志文件中的输出。您应该看到LDAP响应的转储。

Ldap User found" logger=ldap info="(*login.LdapUserInfo)(0xc42010a2a0)({n DN: (string) (len=91) "CN=Username,OU=User,OU=your ou,OU=Accounts,DC=your company,DC=corp", ... MemberOf: ([]string) (len=28 cap=32) {n  (string) (len=84) "CN=your GroupName"

我发现Grafana在组名称响应上是 case敏感的。我的客户合作中的LDAP正在返回上限CN=

我必须完全匹配这个问题(我想这是一个错误,花了我一些时间来弄清楚)。

要验证的另一件事是组映射: [[servers.group_mappings]] group_dn = "CN=your GroupName,[... what ever in between],DC=corp" org_role = "Viewer"

另外,如果您启用了group_filter,则可能会破坏您的LDAP组响应(至少在我的设置中确实如此)。我有(|成员= cn =您的groupName,ou = [...],dc = corp)附加到我的 search_filter=

必须将成员_OF属性设置为 memberOf。其他一切看起来有效。
关于您的请求

如果用户"抹布cho"是MyGroup的成员,则用户将成为Grafana的MyGroup org的管理员

您必须将org_id设置为Grafana的MyGroup整数,以将MyGroup(LDAP)的用户映射到MyGroup(Grafana)的管理员角色

[[servers.group_mappings]]
group_dn = "cn=MyGroup,ou=root"
org_role = "Admin"
org_id   = 23

Grafana文档非常好。也许您应该看看那里的示例。

最新更新