За последние 24 часа нас посетили 32446 программистов и 1753 робота. Сейчас ищут 877 программистов ...

windows + php

Тема в разделе "Прочие вопросы по PHP", создана пользователем murcom, 18 июл 2006.

  1. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Кто-нибудь знает как не использую сторонний софт, т.е используя windows, php и apache реализовать авторизацию на странице, используя логин и пароль который используются user-ами в для авторизации в Windows :?:

    ps: Вариант типа сохранить всех в файл и оттуда читать не подходит. Надо чтобы данные брались из Винды.
    pps:Если с паролем нельзя, то хотя бы с одним логином.
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    murcom

    конечно. LDAP.
    только юзер в домене должны быть.
     
  3. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    А кратенький пример для Windows, а то как я понимаю в Help для Unixов написано.
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    murcom

    php мультиплатформный язык.
     
  5. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    А что выступает на Windows машине в качестве LDAP сервера?
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    murcom

    ActiveDirectory На контроллере домена
     
  7. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    thanks.... осталось подключить ldap к php
     
  8. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Нужна помощь...
    Как поставить LDAP на PHP 5 ?
    В инете нет ничего такого(я не нашел).
     
  9. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    раскоментировать
    ;extension=php_ldap.dll

    но повторюсь, это если пользователи в домене и все равно юзеру придется вводить логин/пароль на сайте.

    ну и почитай
    http://phpclub.ru/talk/search.php?s=&ac ... descending
     
  10. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    раскоментировал и скопировал ssleay32.dll и libeay32.dll как в Help написано, а он зараза пишет Fatal error: Call to undefined function ldap_connect() in d:\www\test\test.php on line 7. Даже скачал OpenLDAP, но не имею ни малейшего понятия как его к PHP прикрутить.
    Так логин пароль и надо вводить на странице.
     
  11. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    раскоментировать
    ;extension=php_ldap.dll
    и перезапусти апач
     
  12. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Пять раз перезапускал :(
     
  13. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Может там еще что-то надо ?
     
  14. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    murcom

    посмотри phpinfo() что у тебя там пишет? тот ли php.ini правил?
     
  15. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    :) :) :) и в правду...я правил в папке PHP, а надо в виндовой папке.
     
  16. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    второй день башку ламаю, а тут такое :)
     
  17. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Есть еще вопрос
    Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Invalid credentials in d:\www\test\test.php on line 22
    Что это значит не особо въехал?
    Код (Text):
    1.  
    2. <?php
    3. // make sure your host is the correct one
    4. // that you issued your secure certificate to
    5. $ldaphost = "192.168.15.5";
    6. $ldapport=389;
    7. $ldapusern="petya@firma.ru";
    8. $ldappass="666666";
    9. // Connecting to LDAP
    10. $ldapconn = ldap_connect($ldaphost,$ldapport)
    11.           or die("Could not connect to {$ldaphost}:{$ldapport}");
    12. if ($ldapconn)
    13. {
    14.     // binding to ldap server
    15.     ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3) or die ("Could not set LDAP Protocol version");
    16.     // verify binding
    17.     if($ldapbind = ldap_bind($ldapconn, $ldapusern, $ldappass) == true)
    18.     {
    19.         // Display if the user is authenticated.
    20.         echo "User is authenticated.";
    21.     }
    22.     else
    23.     {
    24.         // Display the user is not authenticated.
    25.         echo "User is not authenticated.";
    26.     }
    27.     ldap_close($ldapconn);
    28. }
    29.    
    30. ?>
     
  18. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Может надо $ldapusern="o=Firma Organization, ou=First Administrative Group, cn=petya";
    ЗЫ: Толку нет :(
     
  19. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    murcom

    у юзера прав нету коннеткиться. смотри права доступа на уровне групп. включи для теста юзера в группу Domain Admins. должно пустить.

    ну и
    ldap_set_option($ldap_con, LDAP_OPT_PROTOCOL_VERSION, 3);
    ldap_set_option($ldap_con, LDAP_OPT_REFERRALS, 0);
     
  20. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    А надо первым или вторым вариантом?

    ну и юзера так
    "CN=user_name,OU=Group,DC=domain,DC=ru"
     
  21. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    Права есть...Все работает ....пока :)
    ЗЫ: Я не правильно $ldapusern написал.
     
  22. cmd

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

    С нами с:
    31 авг 2006
    Сообщения:
    19
    Симпатии:
    0
    Напишите, плиз, как должно быть на вашем примере для проверки доступа...

    В каком виде должна быть записана строка с логином?

    так:
    $ldapusern="CN=petya@firma, DC=firma,DC=ru";

    или так:
    $ldapusern="CN=petya@firma.ru, DC=firma,DC=ru";

    или так:
    $ldapusern="CN=имя_фамилия, DC=firma,DC=ru";
    имя_фамилия - имя и фамилия с пробелом как занесено в домене
    $ldappass="доменный пароль";
    ....
    $ldapbind = ldap_bind($ldapconn, $ldapusern, $ldappass)

    Во всех случаях ноль результата.


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

    PHP:
    1.   $r=ldap_bind($ds);
    2. $sr=ldap_search($ds, "dc=firma, dc=ru" , "mail=d*");  
    - находит записи по маске почты, но свою там найти не могу.
     
  23. murcom

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

    С нами с:
    6 июн 2006
    Сообщения:
    62
    Симпатии:
    0
    Адрес:
    :адуктО
    1. Есть такая программа как Hyena для ActiveDirectory. С ее помощью можешь посмотреть $ldapusern у себя на серваке.
    2. У меня при анонимном поиске тоже ничего не ищется. Создай левого пользователя и ищи что тебе нужно.
     
  24. obsrv

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

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Для AD sAMAccountName ( cn ).
    murcom правильно написал.
    Скачайте бесплатный LDAP browser и проверьте правильность всех BaseDN, SearchDN, BindDN там, а потом вставляйте в код.
     
  25. Xerk

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

    С нами с:
    5 окт 2007
    Сообщения:
    177
    Симпатии:
    0
    Адрес:
    Владивосток
    эм... для каких целей это может быть нужно? Я себе представить не могу...