Как я могу получить имя пользователя Windows из моего приложения PHP? - PullRequest
4 голосов
/ 11 ноября 2011

Моя причина публикации здесь заключается в том, что мне до сих пор неясно, какие конкретные требования должны быть выполнены для достижения этой цели.

Мы запускаем наши приложения PHP на веб-сервере Apache iSeries.Все наши пользователи на IE.Мы используем AD для наших имен пользователей в сети нашей компании.

Текущая настройка сервера Apache не требует, чтобы пользователи заходили на наши страницы ... если вы находитесь в нашей сети, у вас есть доступ к странице.

Есть ли способ (через LDAP или другие средства) получить имя пользователя Windows, вошедшего в систему?Последним последним средством будет перенаправление пользователей на сайт ASP.NET, размещенный на наших серверах Windows, и передача имени пользователя обратно в приложение PHP.Но опять же, это очень последнее средство.

Ссылка здесь: Можете ли вы получить имя пользователя Windows (AD) в PHP? имеет довольно много хороших предложений, однако переменная AUTH_USER ISпусто, как упомянуто в ссылке ... и я не думаю, что сервер iSeries Apache может реализовать встроенную аутентификацию Windows.

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

Ответы [ 2 ]

3 голосов
/ 11 ноября 2011

Вы можете получить его из объекта ActiveX и JavaScript, так как вы используете IE. Чтобы включить это в PHP, может быть, включить его в качестве скрытого поля на странице входа в систему?

try {
  var activex = new ActiveXObject('WScript.Network');
  document.write(activex.userName);
} catch (ex) {
  document.write("unable to get user info");
}

Убедитесь, что вы добавили этот сайт в доверенную зону браузера и включили сценарии для его запуска.

0 голосов
/ 11 ноября 2011

Из моего опыта написания SSO-обработки для PHP-приложений вы можете выполнить эту работу, используя комбинацию mod_auth_ntlm и Kerberos (посмотрите эту ссылку , она очень близка к тому, что я помню, хотя моя первоначальная настройка была~ 5 лет назад на коробке Gentoo).Если я правильно помню, вы должны найти имя пользователя в переменной $_SERVER["REMOTE_USER"] в этой настройке.

...