Аутентификация пользователя, использующего LDAP от PHP

В KNN выход полностью зависит от ближайших соседей, что может быть или не быть хорошим выбором. Также он чувствителен к метрикам расстояния. Больше вы можете найти здесь здесь . И отличная дискуссия о ее метриках расстояний может быть полезной для вас.

С другой стороны, CNN извлекает признаки из входных данных. Которые очень полезны для проведения анализа. И недавний успех в CNN специально wavenet для аудио приложения, я предпочту пойти с CNN.

Редактировать: Учитывая ваш размер данных, CNN не является хорошим вариантом здесь.

35
задан arun 8 October 2014 в 04:04
поделиться

3 ответа

Общая процедура была бы (соответствующий ext/ldap php управляет в скобках):

  1. подключение к серверу LDAP с помощью "Хоста LDAP" и "порта LDAP не" ( ldap_connect () ) и набор корректные опции соединения ( ldap_set_option () ), особенно LDAP_OPT_PROTOCOL_VERSION и LDAP_OPT_REFERRALS

  2. связывают с сервером LDAP с помощью "учетной записи LDAP для привязки" и "пароль учетной записи LDAP" ( ldap_bind () ) - если Вы проходите проверку подлинности против сервера Active Directory, можно непосредственно использовать имя пользователя и пароль от страницы входа в систему и пропустить все следующие шаги.

  3. ищут дерево пользовательскую запись/объект соответствия specifing "ОСНОВНОЙ DN" и соответствующий фильтр LDAP - скорее всего, что-то как (&(objectClass=user)(sAMAccountName=%s)), где %s должен быть заменен именем пользователя, которое будет аутентифицироваться ( ldap_search () )

  4. проверка, если количество возвращенных записей равняется 1 (если <> 1 затем что-то пошло не так, как надо, например, никакой пользователь не нашел, или многочисленные пользователи нашли)

  5. retrive, который отличительное имя (DN) этого однократного въезда ( ldap_get_dn () )

  6. использует DN, который, как находят на последнем шаге, пытался связать с сервером LDAP с паролем, данным в странице аутентификации ( ldap_bind () )

  7. , если связывание успешно выполняется затем, все в порядке, в противном случае скорее всего, пароль неправильный

, Это действительно не настолько трудно, как это звучит сначала. Обычно я предлагал бы пользоваться своего рода стандартной библиотекой для аутентификации против сервера LDAP такой как Net_LDAP2 ГРУШЕВЫЙ пакет или Zend_Ldap из Платформа Зенда . У меня нет опыта с фактическим использованием Net_LDAP2 (хотя я знаю, что код вполне хорошо), но Zend_Ldap работы очень хорошо против серверов Active Directory или серверов ADAMS (который является, очевидно, что Вы работаете с).

Это добьется цели использование Zend_Ldap:

$options = array(
    'host'                 => 'ad.blueroom.ac.uk',
    'useStartTls'          => true,
    'accountDomainName'    => 'blueroom.ac.uk',
    'accountCanonicalForm' => 4,
    'baseDn'               => 'ou=bluebird,dc=bluebird,dc=ac,dc=my',
);
$ldap = new Zend_Ldap($options);
try {
    $ldap->bind('user', 'password');
} catch (Zend_Ldap_Exception $e) {
    // something failed - inspect $e
}
// bind successful
$acctname = $ldap->getCanonicalAccountName('user', Zend_Ldap::ACCTNAME_FORM_DN);
52
ответ дан Stefan Gehrig 27 November 2019 в 07:08
поделиться

Вы могли бы попробовать http://code.activestate.com/recipes/101525/ при обращении к http://us3.php.net/ldap и другие результаты поиска Google [php аутентификация LDAP] .

4
ответ дан Emil Sit 27 November 2019 в 07:08
поделиться

вы можете использовать http://pear.php.net/package/Net_LDAP2/docs это красиво и работает.

Пример подключения, взятый из документа:

// Inclusion of the Net_LDAP2 package:
require_once 'Net/LDAP.php';

// The configuration array:
$config = array (
    'binddn'    => 'cn=admin,ou=users,dc=example,dc=org',
    'bindpw'    => 'password',
    'basedn'    => 'dc=example,dc=org',
    'host'      => 'ldap.example.org'
);

// Connecting using the configuration:
$ldap = Net_LDAP2::connect($config);

// Testing for connection error
if (PEAR::isError($ldap)) {
    die('Could not connect to LDAP-server: '.$ldap->getMessage());
}
2
ответ дан 27 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: