PHP-使用sAMAccountName

时间:2018-06-20 10:11:48

标签: php ldap

我正在尝试连接到通过PHP 7.2使用简单绑定的LDAP。

我使用LDAP Admin桌面应用程序来检查我的设置,并且一切正常。该应用程序以name.surname和密码的形式使用我的sAMAccountName进行登录。我想通过PHP实现相同的操作,但成功登录的唯一方法如下:

$ldap_user   = "CN=Name Surname,OU=Users,OU=Sample,DC=sample,DC=othersample";
$ldap_pass   = "myPassword";

$c = ldap_connect("ldap://x.x.x.x", 389);
ldap_set_option($c, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($c, LDAP_ESCAPE_DN, 1);

ldap_bind($c, $ldap_user, $ldap_pass);

但是,我的目标是使$ldap_user成为name.surname,就像应用程序使用它的方式一样。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您将需要执行三步方法:

  1. 使用已知用户绑定到目录
  2. 在目录中搜索具有sAMAccountName“ name.surname”的条目,并检索该条目的DN
  3. 现在使用刚刚检索的DN和用户提供的密码再次绑定到目录。

https://gist.github.com/heiglandreas/5689592

查看示例

当您绑定到ActiveDirectory时,当您以AD域为前缀时,您可能也可以直接使用sAMAccountName,例如:DOMAIN\sAMAccountName

希望有帮助