我需要一些帮助集成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文档非常好。也许您应该看看那里的示例。