Проверьте учетные данные на сервере LDAP - PullRequest
0 голосов
/ 30 сентября 2011

Предположим, что приложение может быть настроено на использование сервера LDAP - будь то ActiveDirectory, или OpenLDAP и т. Д. - для аутентификации своих пользователей и получения некоторой дополнительной информации о них для целей авторизации. Способ привязки приложения к серверу LDAP также настраивается - он может использовать простую привязку или привязку SASL, в зависимости от того, что поддерживает сервер LDAP, и общих требований безопасности.

Предполагается, что если привязка завершается успешно с какими-либо учетными данными, предоставленными пользователем, то это должно означать, что эти учетные данные действительны. Однако это не всегда так; может случиться так, что простое связывание будет успешным, даже если был предоставлен пустой пароль, хотя на самом деле ожидался непустой. Согласно RFC о методах аутентификации LDAP простая привязка с непустым именем пользователя и пустым паролем интерпретируется как намерение установить неаутентифицированное соединение с анонимной авторизацией. Сервер может быть настроен на неудачу таких попыток с unwillingToPerform, но он также может разрешить их.

Вопрос в том, что в таком сценарии, когда приложение может быть настроено на использование различных серверов LDAP и привязку настраиваемым способом - простым или через SASL - существует ли способ однозначно проверить учетные данные, введенные пользователем с этим конкретным сервером LDAP, кроме попыток связывания с этими учетными данными, учитывая, что простое связывание может привести к ложным срабатываниям?

Спасибо, и я с нетерпением жду ваших ответов.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2013

В PHP, по крайней мере, вам просто нужно сделать следующее:

<?php
$ds = ldap_connect($ip_address);
if(@ldap_bind($ds, $username, $password) {
  // Login successful!
} else {
  // Login unsuccessful :(
}
?>

Ваш пробег может отличаться в зависимости от языка, но это сработало для меня.

0 голосов
/ 30 сентября 2011

Конечно, все, что вам нужно сделать, это запретить или, может быть, просто вспомнить случаи, когда пароль был пуст?

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