【问题标题】:using LDAPS authentication使用 LDAPS 身份验证
【发布时间】:2010-12-13 09:55:29
【问题描述】:

我正在将 LDAPS 身份验证与开源 CMS ez 发布一起使用。我已经完成了我应该做的所有配置设置。但是,我仍然无法让 LDAPS 身份验证正常工作!

在调试时,我发现ldap_connect 失败,它有时会返回资源 id #80 或资源 id #75。是否有任何文档描述这些资源 ID 的含义?甚至ldap_connect 的 php 文档也没有关于这些资源 ID 的任何信息。或者还有什么我可能做错的事情?

【问题讨论】:

  • ldap_connect 是一件棘手的事情。你能给我们看一些代码(隐藏安全部分)吗??!!
  • 我为此编写的代码并不多。我只是在 ezpublish 配置文件中提供 LDAPVersion、LDAPServer、LDAPPort、LDAPBaseDn 等,而 ezpublish 使用主机名和端口并调用 ldap_connect 这是一个 php 函数。在我的情况下,当我调试时失败了,我发现它们是我在问题中提到的特定资源 ID。

标签: php ldap ezpublish


【解决方案1】:

The PHP manual on resources. 好像ldap_connect() 成功了。如果失败,则返回FALSE

【讨论】:

  • 有趣..我做了一个由 ldap_connect 返回的资源 ID 的 get_resource_type 并返回“ldap 链接”。我进行了快速搜索,但没有找到太多关于它的信息,知道这是什么意思吗?
  • 来自手册:“资源是一个特殊的变量,持有对外部资源的引用。资源由特殊功能创建和使用。”在您的情况下,“外部资源”是……可以将其视为将您与 LDAP 服务器连接起来的电话线的末端。实际上,资源的类型或 ID 完全无关紧要。该类型始终是“ldap 链接”,因为这就是 ldap_connect() 所要创建的内容,并且 PHP 在内部使用 ID 来寻址正确的“电话线”(您可以同时保存多条线路,即资源)。
【解决方案2】:

最常见的 SSL 相关问题是信任连接中使用的证书。

如果您的 LDAP 服务器 SSL 证书未由知名 CA 签名,或者更准确地说,未由您的 SSL 库已知的 CA 签名,那么它通常会失败。要解决此问题,您必须让您的 SSL 库信任 CA。

Windows (IE)、Firefox、Safari 等都有自己的 keystore 机制,您可以将 CA 的 Trusted Root 证书导入其中。那么由该 CA 签署的所有证书现在都是可信的。

Java 使用 JKS 密钥库文件,旧的 Netscape 使用 cert.db7 或 cert.db8 文件。不知道 PHP 使用什么,但是你应该弄清楚这一点。

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多