получить имя текущего авторизованного в домен Active Directory пользователя средствами PHP

Saratov64

Новичок
Вообщем, одолел я авторизацию моего web приложения в домене виндовом, через протокол LDAP, выброс формы, и вводим логин и пароль, проверяем, юзера и группу, все работает.

как теперь узнать ИМЯ текущего пользователя, который залогинелся??? и автоматически входит на веб ?

как я понимаю PHP это серверный язык, и он не работает на клиенте?
нашел такие разделы, NTLM авторизацию в AD
Но как я понимаю скрипт для АПАЧА
PHP:
$headers = apache_request_headers();    // Recuperation des l'entetes client
    

if($headers['Authorization'] == NULL){              //si l'entete autorisation est inexistante
    header( "HTTP/1.0 401 Unauthorized" );          //envoi au client le mode d'identification
    header( "WWW-Authenticate: NTLM" );         //dans notre cas le NTLM
    exit;                           //on quitte
мое приложение крутиться на ms IIS server
значит, нужно, что-то, что может вытащить текущую учетку ?

На просторах, нета нашел для IIS сервера решение

Если PHP-приложение установлено на IIS, то это делается через переменную AUTH_USER. Проверила - работает на IE, Chrome и FireFox. Вот мой проверочный пример кода:
PHP:
<?php   
   echo $_SERVER['AUTH_USER'];
?>
В результате получаю имя пользователя в виде: MYDOMAIN\user.name

Есть только одно НО! Чтобы это решение действительно заработало, Вам придется отказаться от другого типа аутентификации на сайте (т.е. только через AD).

Вот что нужно сделать в IIS: у сайта в настройках аутентификации (Authentication) включаете (Enable) "Windows Authentication" и обязательно (!) отключаете анонимный доступ (Anonymous authentication).

В IE и Chrome заработает сразу, а FireFox нужно будет сначала поставить это дополнение и прописать сайт в доверенные: https://addons.mozilla.org/ru/firefox/addon/integrated-auth-for-firefox/
Но далее вопрос, я не владелец хостинга, не администратор, и возможно мне откажут, в отключении анонимности входа, так как я понял, все страницы, на этом IIS сервере крутяться с анонимным входом.

Как мне решить мою проблему ????
 

Saratov64

Новичок
Если хотите получать NTLM авторизацию? Да.
я не отличаю, в силу, новезны данного материала.
У меня есть LDAP атовризация, через форму
PHP:
<?php
// Форма для ввода пароля и логина
print '
<form action="index.php" method="post">
<table>
      <tr>
            <td>Имя:</td>
            <td><input type="text" name="login" /></td>
      </tr>
      <tr>
            <td>Пароль:</td>
            <td><input type="password" name="password" /></td>
      </tr>
      <tr>
            <td></td>
            <td><input type="submit" value="Авторизироваться" /></td>
      </tr>
</table>
</form>
а мне надо, подставить в переменные АВТОМАТИЧЕСКИ, т.е. запустил веб страницу, и сразу вход на веб, данные об учетке , т.е. пароль не проверять, а только узнать, что за юзер, проверить, в какую группу он входит, и если он входит в нужную группу, То он попадет в разрешенный для этой группы раздел сайта.
Я возможно путаю вкорне данную задачу, такое допускаю. Так как я понял LDAP и NTLM разные вещи, точнее протоколы для разных задач.

PHP:
  echo $_SERVER['AUTH_USER'];
пусто, ничего не возвращает
 

AnrDaemon

Продвинутый новичок
Это как в том анекдоте.
Вы либо штаны наденьте, либо крестик снимите.
Либо LDAP через форму, либо NTLM через сервер.
 

Saratov64

Новичок
Это как в том анекдоте.
Вы либо штаны наденьте, либо крестик снимите.
Либо LDAP через форму, либо NTLM через сервер.
Понимаю, что не понимаю )))))) я думал, можно использовать оба эти инструмента, вытащить имя, и подставить его в LDAP ... про NTLM я даже не читал ...
а чтобы не ломать, как передать, ЛДАПУ, данные юзера, как-то можно вытащить это ?
 

AnrDaemon

Продвинутый новичок
А теперь забудьте всё, что вы тут писали, и опишите задачу, не пытаясь её решить.
 

Saratov64

Новичок
А теперь забудьте всё, что вы тут писали, и опишите задачу, не пытаясь её решить.
Мне стыдно ))) ладно и так ... Пользователь логинется в домен, открыввет index.php и попадает в допустимый раздел сайта на основе группы, допустем это CN=Admins, весь этот процесс без ввода пароля.
 

AnrDaemon

Продвинутый новичок
Пользователь логинется в домен
Как это относится к вашей задаче?
открыввет index.php и попадает в допустимый раздел сайта на основе группы, допустем это CN=Admins, весь этот процесс без ввода пароля.
Вот это уже больше похоже на задачу.
Итак, у нас есть задача:
1. Обеспечить аутентификацию пользователей без ввода пароля, по учётке АД.
2. Обеспечить авторизацию оных пользоваталей на основании данных из АД.

Для решения первого вопроса, вам надо настроить IIS.
Для решения второго - по выданному вам IIS имени пользователя залезть в LDAP и вытащить нужную вам информацию.
 

Saratov64

Новичок
Как это относится к вашей задаче?

Вот это уже больше похоже на задачу.
Итак, у нас есть задача:
1. Обеспечить аутентификацию пользователей без ввода пароля, по учётке АД.
2. Обеспечить авторизацию оных пользоваталей на основании данных из АД.

Для решения первого вопроса, вам надо настроить IIS.
Для решения второго - по выданному вам IIS имени пользователя залезть в LDAP и вытащить нужную вам информацию.
спасибо, буду читать про IIS.
А без пароля, это термин сквозная авторизация ? (мне для поиска)
 
Сверху