Я проверил тонны решений этой проблемы, но ни одно из них не решило мою проблему, я создаю приложение laravel и мне нужно аутентифицировать пользователей по AD, для этого я обнаружил, что могу выполнить sh с помощью следующий скрипт
$ldap_dn = "uid=user,dc=example,dc=local";
$ldap_password = "somePassword";
$ldap_con = ldap_connect("ldap://domain") or die("Could not connect to LDAP server.");
ldap_set_option($ldap_con, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap_con, LDAP_OPT_REFERRALS, 0);
$bind = ldap_bind($ldap_con, $ldap_dn, $ldap_password);
if($bind)
{
return "Authenticated";
}
Тем не менее, я получаю одну и ту же ошибку, независимо от того, как я изменяю свои параметры. Вот список того, что я пробовал: изменить эту строку $ldap_dn = "uid=user,dc=example,dc=local";
на:
- $ ldap_dn = " cn = пользователь, dc = пример, dc = локальный";
- $ ldap_dn = "uid = домен \ пользователь , dc = пример, dc = локальный";
- $ ldap_dn = " sAMAccountName = пользователь , dc = пример, dc = local ";
Я уверен, что мои учетные данные верны, я проверил это в C#, и он отлично работает со следующим сценарием:
public static bool IsAuthenticated(string ldap, string usr, string pwd)
{
bool authenticated = false;
try
{
DirectoryEntry entry = new DirectoryEntry(ldap, usr, pwd);
object nativeObject = entry.NativeObject;
authenticated = true;
}
catch (DirectoryServicesCOMException cex)
{
}
catch (Exception ex)
{
}
return authenticated;
}
Я даже пытался скомпилировать c# dll, чтобы обойти привязку ldap в php, но тоже попал в тупик с этим решением ...