首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grafana openldap auth: grafana找不到ldap用户

Grafana openldap auth: grafana找不到ldap用户
EN

Stack Overflow用户
提问于 2019-11-22 03:10:37
回答 1查看 2.8K关注 0票数 0

我花了很多天试图让Grafana通过LDAPS认证用户到Active Directory。如果有人有足够的魔法让它发挥作用,我会很高兴的。

我对Grafana有意见。我觉得这也许是个好地方。我正在尝试使用LDAPS进行用户身份验证,但失败了。

环境: ubuntu14.04 grafana6.2 a6.2 openldap2.4.31

下面是配置文件的相关部分:

代码语言:javascript
复制
[[servers]]

host = "xx.xxx.xx.xxx"

port = 389

use_ssl = false

start_tls = false

ssl_skip_verify = false

bind_dn = "cn=admin,dc=sscc,dc=com"

bind_password = '123456'

search_filter = "(cn=%s)"

search_base_dns = ["dc=sscc,dc=com"]

group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))"

group_search_base_dns = ["cn=users,dc=sscc,dc=com"]

group_search_filter_user_attribute = "cn"

[servers.attributes]

name = "givenName"

surname = "sn"

username = "cn"

member_of = "dn"

email =  "email"

[[servers.group_mappings]]

group_dn = "cn=admin,dc=sscc,dc=com"

org_role = "Admin"

[[servers.group_mappings]]

group_dn = "cn=users,dc=sscc,dc=com"

org_role = "Editor"

org_id = 2
代码语言:javascript
复制
[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
allow_sign_up = true

# LDAP backround sync (Enterprise only)
sync_cron = @hourly
active_sync_enabled = false

以下是ldap用户信息:

-LLL -w 123456 -x -H ldap://127.0.0.1 -D "cn=admin,dc=sscc,dc=com“-b

代码语言:javascript
复制
"cn=users,dc=sscc,dc=com"
dn: cn=users,dc=sscc,dc=com
gidNumber: 500
cn: users
objectClass: posixGroup
objectClass: top

dn: cn=test1,cn=users,dc=sscc,dc=com
cn:: IHRlc3Qx
gidNumber: 500
homeDirectory: /home/users/test1
sn: test1
loginShell: /bin/sh
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
userPassword:: MTIzNDU2
uidNumber: 1000
uid: test1
mail: test1@sscc.com

当我使用"test1“登录时,它将失败。

下面是失败的日志:

代码语言:javascript
复制
t=2019-11-21T21:16:25-0500 lvl=info msg="Searching for user's groups" logger=ldap filter="(&(objectClass=posixGroup)(memberUid= test1))"
t=2019-11-21T21:16:25-0500 lvl=info msg="Second bind failed" logger=ldap error="LDAP Result Code 49 \"Invalid Credentials\": "
t=2019-11-21T21:16:25-0500 lvl=eror msg="Error while trying to authenticate user" logger=context userId=0 orgId=0 uname= error="Invalid Username or Password"
t=2019-11-21T21:16:25-0500 lvl=eror msg="Request Completed" logger=context userId=0 orgId=0 uname= method=POST path=/login status=500 remote_addr=xx.xxx.xx.x time_ms=9 size=53 referer=http://xx.xxx.xx.xxx:3000/login

但是当我设置group_mappings时:

代码语言:javascript
复制
[[servers.group_mappings]]
# If you want to match all (or no ldap groups) then you can use wildcard
group_dn = "*"
org_role = "Viewer"
org_id = 3

我可以通过使用"test1".I来成功,我不知道为什么。我认为可能有一些不正确的参数设置。

欢迎任何帮助!

EN

回答 1

Stack Overflow用户

发布于 2019-11-29 03:09:53

test1用户似乎不是users组的成员。

PosixGroup的成员资格由指向用户uid的一个或多个memberUid属性定义。

第一条日志消息显示用于搜索包含具有Uid test1(&(objectClass=posixGroup)(memberUid= test1))成员的组的查询筛选器。

users组包含一个属性objectClass=posixGroup,但它不包含属性memberUid=test1,因此查询不会返回它。为了让test1访问编辑器角色,users组应该有一个相应的memberUid属性,将它们定义为成员:

代码语言:javascript
复制
dn: cn=users,dc=sscc,dc=com
gidNumber: 500
cn: users
objectClass: posixGroup
objectClass: top
memberUid: test1

每当您用group_dn="*"定义组映射时,任何具有有效uid的身份验证用户都将被授权担任该角色,而不考虑组成员资格。这就是为什么一旦将查看器角色配置为忽略组成员时,test1就能够访问它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58986918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档