微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Postgresql – 针对Active Directory(AD)的LDAP身份验证 – 来自Linux服务器的问题,而来自Windows服务器的问题

编辑

我把相同的pg_hba规则放在我的WINDOWS笔记本电脑上安装的postgresql上,它的工作原理……所以我更改了标题:如何让我的linux服务器工作来验证用户的AD,就像Windows Pg服务器一样?

/编辑

我需要使用我们的Active Directory服务器对postgresql db用户进行身份验证.我已经测试了很多配置,但到目前为止,我无法找到为什么postgresql用户无法使用此身份验证方法进行身份验证.

LDAP:Active Directory / Postgresql:Postgresql 9.4

这是我使用的pg_hba规则:

host myDB myUser localhost ldap ldapserver="192.168.10.1" ldapbasedn="DC=companygroup,DC=priv" ldapbinddn="cn=LDAP - Lecture,ou=Users,ou=Specials Objects,dc=companygroup,dc=priv" ldapbindpasswd="ldapPassWord" ldapsearchattribute="sAMAccountName"

使用“myUser”使用正确的密码登录用户时,我在postgresql日志文件中有以下日志:

2015-11-18 10:01:50 CET [25991-1] [unkNown]@[unkNown] LOG: 00000: connection received: host=127.0.0.1 port=39074
2015-11-18 10:01:50 CET [25991-2] [unkNown]@[unkNown] LOCATION: BackendInitialize,postmaster.c:4003
2015-11-18 10:01:50 CET [25991-3] myUser@myDB LOG: 00000: Could not search LDAP for filter "(sAMAccountName=myUser)" on server "192.168.10.1": Operations error
2015-11-18 10:01:50 CET [25991-4] myUser@myDB LOCATION: CheckLDAPAuth,auth.c:2030
2015-11-18 10:01:50 CET [25991-5] myUser@myDB FATAL: 28000: LDAP authentication Failed for user "myUser"
2015-11-18 10:01:50 CET [25991-6] myUser@myDB DETAIL: Connection matched pg_hba.conf line 104: "host myDB myUser localhost ldap ldapserver="192.168.10.1" ldapbasedn="DC=companygroup,dc=priv" ldapbindpasswd="ldapPassWord" ldapsearchattribute="sAMAccountName"

我看到如果我以某种方式更改ldapbinddn或ldapbindpasswd,我还有另一个错误,例如’无法为ldapbinddn执行初始LDAP绑定“……”.所以这些参数应该没问题.

“操作错误”不是很详细,所以我tcpdump身份验证过程,这是我发现的.似乎Postgres执行两个查询

>首先通过搜索属性搜索用户.这个动作似乎没问题,因为在Active Directory的响应中,我看到了与我的用户相关的信息.
>然后执行一个查询.在这一点上,来自LDAP Active Directory服务器的真实消息是:

LdapErr:DSID-0C0906E8,注释:为了执行此操作,必须在连接上完成成功绑定.,data 0,v1db1

在第二个查询中,我看到PG似乎稍微改变了基本搜索
 “DC = ForestDnsZones,DC = companygroup,dc = priv”而不是“DC = companygroup,DC = priv”

(我在tcp跟踪中看到它:

LDAPMessage searchRequest(3) "DC=ForestDnsZones,DC=companygroup,dc=priv" wholeSubtree ...

)

当我通过windows soft“ldapbrowser”尝试研究时,我能够通过一个简单的过滤器(sAMAccountName = myUser)找到我的帐户,其中searchDN DC = companygroup,DC = priv

我的理解是否正确?是否有可能因为可能改变的基础而导致搜索不成功?还是我错过了别的什么?

解决方法

根据您的日志,您对ldapsearchattribute =“sAMAccountName”的配置不起作用.

您可以使用LDAPAdmin或OpenLDAP等LDAP工具来测试过滤器.过滤下面的属性时,请确保以上返回结果

(sAMAccountName=myUser)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐