За последние 24 часа нас посетили 18062 программиста и 1623 робота. Сейчас ищут 1549 программистов ...

LDAP

Тема в разделе "Сделайте за меня", создана пользователем kobek, 15 дек 2016.

  1. kobek

    kobek Новичок

    С нами с:
    30 ноя 2016
    Сообщения:
    11
    Симпатии:
    0
    что то здесь не так посмотрите пожалуйста очень надо



    PHP:
    1. <?php
    2. //ip адрес или название сервера ldap(AD)
    3. $ldaphost = "dc01.kgmu.kz";
    4. //Порт подключения
    5. $ldapport = "389";
    6. //Полный путь к группе которой должен принадлежать человек, что бы пройти аутентификацию.
    7. //"cn=allow_ppl,ou=users_IT,ou=IT,ou=Kyiv,ou=corp,dc=eddnet,dc=org" - это
    8. //мой пример.
    9. $memberof = "CN=moodle moodle,OU=SysService,DC=kgmu,DC=kz";
    10. //Откуда начинаем искать
    11. $base = "ou=studaccounts,ou=students,dc=kgmu,dc=kz";
    12. //Собственно говоря фильтр по которому будем аутентифицировать пользователя
    13. $filter = "sAMAccountName=";
    14. //Ваш домен, обязательно с собакой впереди. Необходим этот параметр
    15. //для авторизации через AD, по другому к сожалению работать не будет.
    16.  
    17.  
    18. /*
    19. ldap://dc01.kgmu.kz:389
    20. CN=moodle moodle,OU=SysService,DC=kgmu,DC=kz
    21. moodle@kgmu.kz
    22. !M00dle
    23. ou=xnet,dc=kgmu,dc=kz;ou=staff,dc=kgmu,dc=kz;ou=studaccounts,ou=students,dc=kgmu,dc=kz
    24. samaccountname
    25. */
    26. ?>
    PHP:
    1. <?php
    2. //Начинаем сессию
    3. $qwe="moodle@kgmu.kz";
    4. $qwerty="M00dle!";
    5.  
    6. //Подключаем конфигурационный файл
    7. include_once ("ldap.php");
    8.  
    9. // Logout
    10. if (isset($_GET['logout']))
    11. {
    12.       if (isset($_SESSION['user_id']))
    13.             {
    14.             unset($_SESSION['user_id']);  
    15.             setcookie('login', '', 0, "/");
    16.             setcookie('password', '', 0, "/");
    17.             header('Location: index.php');
    18.             exit;
    19.       }
    20. }
    21.  
    22. //Если пользователь уже аутентифицирован, то перебросить его на страницу main.php
    23. if (isset($_SESSION['user_id']))
    24.       {
    25.       header('Location: main.php');
    26.       exit;
    27. }
    28.  
    29. //Если пользователь не аутентифицирован, то проверить его используя LDAP
    30. if (isset($_POST['login']) && isset($_POST['password']))
    31.       {
    32.       $username = $_POST['login'];
    33.       $login = $_POST['login']."@kgmu.kz";
    34.       $password = $_POST['password'];
    35.       //подсоединяемся к LDAP серверу
    36.       $ldap = ldap_connect($ldaphost,$ldapport) or die("Cant connect to LDAP Server");
    37.       //Включаем LDAP протокол версии 3
    38.       ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
    39.  
    40.       if ($ldap)
    41.             {
    42.             // Пытаемся войти в LDAP при помощи введенных логина и пароля
    43.             $bind = ldap_bind($ldap,$qwe,$qwerty);
    44.  
    45.             if ($bind)
    46.                   {
    47.                   // Проверим, является ли пользователь членом указанной группы.
    48.                   $result = ldap_search($ldap,$base,"(&(memberOf=".$memberof.")(".$filter.$username."))");
    49.                   // Получаем количество результатов предыдущей проверки
    50.                   $result_ent = ldap_get_entries($ldap,$result);
    51.             }
    52.             else
    53.                   {
    54.                   die('Вы ввели неправильный логин или пароль. попробуйте еще раз<br /> <a href="index.php">Вернуться назад</a>');
    55.             }
    56.       }
    57.  
    58.       // Если пользователь найден, то пропускаем его дальше и перебрасываем на main.php
    59.       if ($result_ent['count'] != 0)
    60.             {
    61.             $_SESSION['user_id'] = $login;
    62.             header('Location: main.php');
    63.             exit;
    64.       }
    65.       else
    66.             {
    67.             die('К сожалению, вам доступ закрыт<br /> <a href="index.php">Вернуться назад</a>');
    68.       }
    69. }
    70. ?>