【问题标题】:Why isn't ldaps (LDAP over SSL) auth supported in postgresql为什么 postgresql 不支持 ldaps (LDAP over SSL) 身份验证
【发布时间】:2017-08-14 21:08:12
【问题描述】:

似乎 postgres 只选择支持 StartTLS 进行 ldap 身份验证加密。有谁知道为什么?我们的组织明确拒绝任何不安全的连接,因此 StartTLS 将无法工作,因为它要求初始连接不安全。在我看来,postgres 似乎不应该关心 ldapurl 使用什么协议,而应该把它留给底层库。有什么想法吗?为仅支持 LDAPS 工作的服务器获取 ldap 身份验证的任何解决方法?

【问题讨论】:

    标签: postgresql ldap


    【解决方案1】:

    Postgres 现在在使用 ldapurl 时支持 LDAPS,根据 documentation 从版本 11 开始

    【讨论】:

    【解决方案2】:

    那么在 pg_hba.conf 中这样的一行是否不起作用?

    hostssl samerole all 10.10.10.0/24 ldap ldapserver=ldap.mycompany.com ldapprefix="uid=" ldapsuffix=", ou=people, dc=mycompany, dc=com" ldaptls=1
    

    不工作?

    【讨论】:

    • hostssl 处理通过 ssl 的从客户端到数据库服务器的数据库连接,以及如何进行身份验证。我的抱怨是从数据库到 LDAP 服务器进行身份验证的连接。
    • 您可以在此处阅读:postgresql.org/docs/9.6/static/auth-methods.html“要使用加密的 LDAP 连接,除了 ldapurl 之外,还必须使用 ldaptls 选项。不支持 ldaps URL 方案(直接 SSL 连接)。”他们直截了当地说他们不支持 ldaps,而是使用 ldaptls 标志,然后他们在后台使用 StartTLS。他们的代码显式阻止了 ldaps:// url,即使底层库可以支持它们(在我们的例子中也是如此)
    • ldaps 已弃用,根据 openldap:openldap.org/faq/data/cache/605.html
    • 从服务器的角度来看,我明白了。就像我正在运行 ldap 服务器,但从客户端与服务器的角度来看,我希望客户端能够比 openldap 服务器具有更广泛的兼容性。我只是不明白为什么 postgres 关心。他们必须明确阻止它,为什么不让数据库管理员控制它连接的内容以及如何连接?如果它有效,它就有效我不明白为什么数据库觉得有必要对其进行监管。
    • 如果我没记错的话,问题是安全问题之一,即 ldaps:// url 显示连接时隐藏的搜索信息,然后启动 tls,然后发送搜索信息。我会继续 pgsql-general 并询问原因或搜索 pgsql-hackers / general 的档案,看看是否有关于它的讨论。
    猜你喜欢
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 2020-08-07
    • 2012-10-18
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2014-01-31
    相关资源
    最近更新 更多