我需要一些帮助整合Grafana和LDAP。假设我在LDAP中有一个需要映射到Grafana组织“MyGroup”的组。 下面的ldap.conf是否具有正确的配置,以便如果用户'Rag 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"
...
答案 0 :(得分:3)
在ldap.toml中启用result = checkfile(file.strip())
。连接时查看grafana日志文件中的输出。您应该看到LDAP响应的转储。
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"
我必须完全匹配(我猜它是一个错误,花了我一些时间来弄清楚)。
要验证的另一件事是组映射:
CN=
此外,如果您启用了group_filter,这可能会破坏您的LDAP组响应(至少在我的设置中会这样做)。我({memberOf = CN =您的Groupname,OU = [...],DC = corp)附加到我的[[servers.group_mappings]]
group_dn = "CN=your GroupName,[... what ever in between],DC=corp"
org_role = "Viewer"
答案 1 :(得分:0)
member_of属性必须设置为memberOf
。其他一切看起来都有效。
关于您的要求
如果用户'Rag 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 documentation很好。也许您应该看看那里的例子。