postgresql - Postgres LDAP 身份验证

标签 postgresql ldap

我正在尝试使用 Postgres 设置 LDAP 身份验证。 我的数据库中有一个与 AD 中同名的用户,并且 pg_hba.conf 中有以下字符串:

托管所有 myusername 0.0.0.0/0 ldap ldapserver=ldap.server.address ldapport=10636 ldapprefix=""ldapsuffix="@domain.com"ldapscheme=ldaps

可从 postgres 服务器访问 LDAP 服务器。 LDAP 服务已启动并监听端口 10636 我可以使用此用户名/密码登录与 AD 集成的其他服务。

但是当我连接到数据库时出现错误:

用户未经过身份验证 (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 "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a1cad4cde1ccd8c5ceccc0c8cf8fcdcec2c0cd" rel="noreferrer noopener nofollow">[email protected]</a>" WITH SUPERUSER LOGIN;

连接时,请使用完整的 UPN 名称格式!

psql -h 127.0.0.1 -U "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3d5648517d50445952505c54531351525e5c51" rel="noreferrer noopener nofollow">[email protected]</a>" -W postgres

关于postgresql - Postgres LDAP 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69377231/

相关文章:

python - 将敏感数据存储在数据库中,建议

sql - 我怎样才能做一个不同的总和?

arrays - 联结表与外键数组?

java - 如果 LDAP 服务器在获取记录时断开连接,不会引发异常

php - 从 PHP 站点进行 Websphere 单点登录?

java - 扩展增删改查存储库时如何使用自己的查询进行保存操作?

postgresql - 如何在Postgresql中使用postgres_fdw从另一个数据库获取记录

ldap - 使用 python-ldap 添加组

C# 和 VB.NET LDAP 搜索不同?

directory - 测试 LDAP 用户凭证的简单方法