我正在尝试与Postgres建立LDAP身份验证。我在我的数据库中有一个用户,与AD中同名,pg_hba.conf中有以下字符串:
host all myusername 0.0.0.0/0 ldap ldapserver=ldap.server.address ldapport=10636 ldapprefix="" ldapsuffix="@domain.com" ldapscheme=ldaps
postgres服务器可访问的LDAP服务器。LDAP服务已启动并监听端口10636我可以用这个用户名/密码登录与AD集成的其他服务。
但是当我连接到数据库时,我得到错误:
user is not authenticated (LDAP)
我做错了什么?
我在想如何在PostgreSQL中配置LDAP。
这是个好地方!:)
注意:ldap方法没有map
属性,所以不能通过pg_ident.conf
文件进行比较您需要像这样在pg_hba.conf
文件中配置身份验证:
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 ldap ldapserver=mydomain.local ldapport=389 ldaptls=1 ldapprefix=""
或
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 ldap ldapserver=mydomain.local ldapport=636 ldapprefix=""
用户需要使用与UPN名称完全匹配的名称创建!
CREATE ROLE "kul@mydomain.local" WITH SUPERUSER LOGIN;
连接时,使用完整的UPN名称格式!
psql -h 127.0.0.1 -U "kul@mydomain.local" -W postgres