За последние 24 часа нас посетили 59123 программиста и 1811 роботов. Сейчас ищут 983 программиста ...

Текущий логин винды и данные о нем из AD

Тема в разделе "PHP для новичков", создана пользователем ZeroCoolzz, 16 июл 2015.

  1. ZeroCoolzz

    ZeroCoolzz Новичок

    С нами с:
    16 июл 2015
    Сообщения:
    9
    Симпатии:
    0
    Доброго времени суток! Помогите пожалуйста советом.
    Недавно начал создавать сайт для работы с БД через PHP. В принципе все понятно и несложно выглядит, но никак не могу найти как реализовать одну штуку.

    Все компы в корпоративной сети, все через Active Directory сделано.
    Требуется:
    1. Узнать логин текущего пользователя в компе средствами PHP. (ну или javascript, правда я его не знаю :) но вдруг там такое просто делается)
    2. Взять этот логин, подключиться к Active Directory и вытащить всю инфу о нем.

    В общем надо, чтобы при заходе на сайт он сам определял ФИО и адрес корпоративного мыла текущего пользователя.
    Мне хотя бы ссылочку на статью.
    Как я понял подобное можно осуществить через LDAP, но внятной статьи на то как это все работает я не нашел.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    пхп не знает логин на компе клиента. зато видит айпишник. когда я лет десять назад подобную задачу имел - там был запрос как раз к ад для выяснения текущего активного пользователя на машине с таким адресом.
     
  3. ZeroCoolzz

    ZeroCoolzz Новичок

    С нами с:
    16 июл 2015
    Сообщения:
    9
    Симпатии:
    0
    Нашел вот такую штуку на JS
    var net = new ActiveXObject("WScript.Network");
    alert( 'Computer: ' + net.ComputerName + "\n\nUser:" + net.UserName );
    в IE работает, а большего мне и не надо, все равно IE корпоративный стандарт.
    Теперь осталось только понять как передать значение переменной в PHP
    Ну и выдрать данные из AD
     
  4. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
  5. ZeroCoolzz

    ZeroCoolzz Новичок

    С нами с:
    16 июл 2015
    Сообщения:
    9
    Симпатии:
    0
    вставил этот кусок кода на JavaScript:

    var net = new ActiveXObject("WScript.Network");
    alert( 'Computer: ' + net.ComputerName + "\n\nUser: " + net.UserName );

    Есть еще куски JS в коде и они работают, а этот конкретно нет.
    Подскажите что я делаю не так.
    Как я понял этот кусок работает через ActiveX.

    А, самое то главное забыл написать.
    Если я просто захожу в папку с сайтом и запускаю страницу в IE - то все работает.
    А если запускаю openserver и через localhost захожу на эту же страницу, то именно этот кусок не работает.
    Помогите разобраться в чем дело
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    перечитай моё сообщение. реально проще у ад спросить текущее положение дел чем на стороне клиента получать то что потом отправится обратно на сервер. если очень надо велосипедировать - тогда на джаве можно написать небольшой аплет, который выполнится у пользователя в браузере и отправит данные на сервер. а еще минус реализации на стороне клиента в том что он может сделать запрос к серверу отправив ему фиктивные данные. а в моменте когда вебсервер сам спросит у ад - такой трюк не прокатит.
     
  7. ZeroCoolzz

    ZeroCoolzz Новичок

    С нами с:
    16 июл 2015
    Сообщения:
    9
    Симпатии:
    0
    Не получится так. Админ, который у нас отвечает за AD сказал, что такого нету. Может конечно и не настроено, чтобы адреса хранились компов, я не знаю.
    Так что это не вариант. Помогите лучше понять что не так с кодом.
    IE через консоль выдает ошибку :
    SCRIPT429: Невозможно создание объекта сервером программирования объектов.
    Как раз на первую строчку из двух.

    Добавлено спустя 1 минуту 47 секунд:
    Я бы конечно попробовал сделать, но я только начал постигать web-программирование, и поэтому там для меня ничерта не понятно. Внятной статьи на эту тему пока найти не удалось.
     
  8. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Я не понимаю, почему в браузерах еще не сделали такую возможность узнавать пользователя, чтобы отправить данные на сервер
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    не безопасно нет?
     
  10. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Потому-что данные, пришедшие серверу от клиента имеют степень доверия 0 (ноль).
    По-этому, что бы сервер был уверен в пользователе - аутентификацию должен провести он.
     
  11. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Согласен! Но если приложение крутить на локальных сетях в компании, без внешнего доступа, было бы очень удобно! Пусть по умолчанию, в целях безопасности данная опция отключена, но так ее вообще нет)
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    браузер предназначен для просмотра ресурсов по протоколу хттп. и не должен их делить на интранет и экстранет. в нем не должно быть базовой функциональности выдающей серверу текущего пользователя. тем более как уже было сказано выше - такой запрос можно будет легко подделать. либо не делать его по стандартным протоколам но тогда нафига это должен уметь брауезр. и как уже было сказано выше - десять лет назад проблема аутентификации браузера клиента решалась через запрос вебсервера к серверу ад. сейчас либо технологии декгадировали, либо админ не особо квалифицирован, либо админ придумал отмазку не увидев особой необходимости в данном "сервисе" в данном интранете.

    пс. в нашей инфраструктуре только один юзер мог быть залогинен на машине. как разруливается ситуация когда несколько юзеров залогинены и только один активен - не возьмусь комментировать.