PHP 中的 ldap 身份验证品种

ldap authentication varieties in PHP

在 PHP(带有 ldap_bind 的任何版本)中,我想知道为什么有些活动目录服务器使用方法 1 绑定,有些使用方法 2,如下所示,有人愿意向我解释为什么吗?是微软服务器版本的问题还是一些特殊的配置?

请注意,唯一的区别是作为参数传递给函数的 $username 值,在一个中它与 $server 连接在一起,而另一个则不连接。

方法一

ldap_bind($ldap_connection, $username . '@' . $server, $password)

方法二

ldap_bind($ldap_connection, $username, $password)

为了便于参考以备不时之需,official doc 在 ldap_bind

两者都有效,而且在大多数情况下都可以。 here.

列出了 LDAP 与 AD 绑定所允许的完整格式列表

如果您使用与要连接的服务器位于同一域的帐户进行身份验证,则无需提供带有用户名的域名(sAMAccountName 属性)。

如果您使用与服务器位于不同域的帐户进行身份验证,那么您需要以您可以这样做的任何格式提供域名和用户名。例如(如果域是 example.com):

  • EXAMPLE\username
  • 用户名@example.com
  • CN=theuser,OU=users,DC=example,DC=com
  • 示例。com/Users/theuser