Postgresql – 针对Active Directory(AD)的LDAP身份验证 – 来自
编辑
我把相同的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的响应中,我看到了与我的用户相关的信息. LdapErr:DSID-0C0906E8,注释:为了执行此操作,必须在连接上完成成功绑定.,data 0,v1db1 在第二个查询中,我看到PG似乎稍微改变了基本搜索 (我在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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |