PHP ldap_bind () локальные проблемы - PullRequest
       4

PHP ldap_bind () локальные проблемы

0 голосов
/ 10 сентября 2018

У меня есть скрипт, который должен отображать список пользователей в Active Directory моей компании.

Для этого я использую выделенную учетную запись AD (которая авторизована для поиска в AD). Я делаю это так:

$ldapResource = ldap_connect('ldap://*********');
ldap_set_option($ldapResource, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapResource, LDAP_OPT_REFERRALS, 0);

ldap_bind($ldapResource, "CN=My company standard Account, OU=*******", "account_password");

Затем я делаю поиск

ldap_search(...)

При этом проблема заключается в том, что когда я запускаю скрипт локально (с xampp), я теряю права текущей учетной записи (например, доступ в Интернет, потому что стандартная учетная запись не имеет этого права?).

Если я хочу вернуться в свой реальный профиль, мне нужно запустить скрипт, который аутентифицирует меня (ldap_bind ()) с моими собственными учетными данными.

Есть ли какое-либо решение, чтобы не потерять основную аутентификацию? Должен ли я выполнить исследование по-другому?

1 Ответ

0 голосов
/ 10 сентября 2018

Попробуйте пример ниже, чтобы увидеть, работает ли он. В нем перечислены все пользователи. Измените переменные так, как вам удобно. Проверьте this для большего количества примеров.

$username = 'yowyow';
$password = '123123';
$server = '192.168.32.4';
$domain = '@yourdomain.local';
$port = 389;

$connection = ldap_connect($server, $port);
if (!$connection) {
    exit('Connection failed');
}

// Help talking to AD
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0);

$bind = @ldap_bind($connection, $username.$domain, $password);
if (!$bind) {
    exit('Binding failed');
}

// This is where you can do your work
$unit = 'sales';
$distinguished_name = "OU=$unit,DC=yourdomain,DC=local";
$filter = "(sAMAccountName=*)";

$search = ldap_search($ldap_connection, $distinguished_name, $filter);
$total_record = ldap_count_entries($ldap_connection, $search);
$returned = ldap_get_entries($ldap_connection, $search);

if ($total_record > 0) {
    print_r($returned);
}
// End

ldap_close($ldap_connection);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...