аутентификации Internet Information Server (IIS) + PHP + MSSQL

Saratov64

Новичок
@Saratov64, тебя обманули знания HTTP это только крупинка. HTTP запрос должен содержать некий ключик, нечто что отличает его от другого пользователя. возможно и наверняка будет 2я часть, которая по ключику должна рассказать что этот ключик открывает.
А что об этом прочитать, чтобы два этих для меня ОЧЕНЬ ВАЖНЫХ, вопроса, хотя бы осветить. Так как я никогда не слышал, про наличие заголовка, и вообще не изучал протокол http по косточка, ну и есть он и есть. Не задумывался даже.... признаться честно...
 

WMix

герр M:)ller
Партнер клуба
я б открыл книжку по пхп и разобрался как работает сессия
 

Saratov64

Новичок
Подскажите с LDAP, нашел пример подключения.

http://php.net/manual/ru/function.ldap-connect.php


Пример #1 Пример подключения к серверу LDAP.


PHP:
<?php

// LDAP переменные
$ldaphost = "sar.domain.com";  // Ваш сервер ldap
$ldapport = 389;                 // Порт вашего сервера ldap

// Соединение с LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Невозможно соединиться с $ldaphost");

?>
Молчок, даже ошибку не выдает? С чего копать, как подключиться.
 

Saratov64

Новичок
Подскажите, нужно ли настраивать LDAP сервер в Active Directory, чтобы я мог подключаться из своего PHP к домену ???
если у меня есть учетка, под которой я работаю как пользователь в этом домене, я под ней могу тестировать, или нужно специально настраивать LDAP сервер на winServer и там создавать специальную учетку ???
 

Saratov64

Новичок
Нет.
Да, но желательно иметь отдельную.
Поправьте пожалуйста код, я нашел, как искать через LDAP пользователя, но не получается, выполнить, проверку, является ли он членом определенной группы Administrators.
если я правильно понял, в переменной $memberof мне надо указать полный путь к каталогу OU где расположена это группа, и через CN указать, имя этой группы????

далее: в строке
PHP:
 $result = ldap_search($ldapconn,$base,$filter,$memberof)or die ("Error trying to bind: ".ldap_error($ldapconn));
я указал 4 параметра (подключение к бд, сама БД, юзер, член группы), не работает, либо не правильно указываю, $ldapconn,$base,$filter,$memberof

PHP:
<?php
$login = 'admin';
$user = '[email protected]';
$pass = '12345';
$ldaphost = "LDAP://domain.com";
$memberof = "OU=SAR,OU=Services,OU=Groups, CN=Administrators,";
$base = "DC=domain, DC=com";
$filter = "(&(objectCategory=person)(sAMAccountName=$login))";


// Соединение с LDAP
$ldapconn = ldap_connect($ldaphost)
          or die("Error conect {$ldaphost}");
    ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
    ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
    
   if ($ldapconn) {
            // анонимная привязка
            $ldapbind = ldap_bind($ldapconn, $user, $pass)or die ("Error trying to bind: ".ldap_error($ldapconn));
            if ($ldapbind) {
                echo "Anonims LDAP - OK";
                echo "<br>";
                echo "\n  <body><div align='center'><p><span style='color:#ff4d00'>LDAP bind user successful...</span></p></div></body>    ";
                
                
                //LDAP-запрос поиск юзера
                 echo "<br>";
                
                $result = ldap_search($ldapconn,$base,$filter,$memberof)or die ("Error trying to bind: ".ldap_error($ldapconn));
                
                // Получаем количество результатов предыдущей проверки
                 $result_ent = ldap_get_entries($ldapconn,$result);
                // Если пользователь найден, т.е. результатов больше 0 (1 должен быть)
               if ($result_ent['count'] > 0)
                     {
                    echo "ЕСТЬ ТАКАЯ ЗАПИСЬ!!";
                  
                    
               }else {
                  echo "не найдено";
               }   

                    
            
            } else {
                echo "Anonims LDAP - Errors";
            }
 
    }
?>
 

Saratov64

Новичок
как я понимаю, нужно правильно фильтр сделать, где указать нужно, что пользователь принадлежит группе конкретной
а как объеденить в один фильтр, пользователя и что он вложен в группу?
PHP:
$login = 'admin';
$memberof = "CN=Administrators";
$filter2 = "(&(memberOf=$memberOf)(sAMAccountName=$login))";
 
Сверху