Php ldap bind - невозможно привязать к серверу: неверные учетные данные - PullRequest
0 голосов
/ 25 февраля 2020

Я проверил тонны решений этой проблемы, но ни одно из них не решило мою проблему, я создаю приложение 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, но тоже попал в тупик с этим решением ...

...