Проверка подлинности пользователя Symfony с использованием Active Directory - PullRequest
1 голос
/ 01 марта 2010

Есть ли способ аутентификации пользователей в приложениях Symfony с использованием Active Directory? Не могли бы вы указать на некоторую документацию?

редактировать

Мне нужно иметь прозрачный логин в моем приложении. Пользователь аутентифицируется один раз при входе в Windows, после чего все приложения должны быть доступны с одинаковыми учетными данными без повторного запроса домена \ имени пользователя и пароля.

Я попробовал следующее в простом php-скрипте:

if (!isset($_SERVER['PHP_AUTH_USER'])) {
  header('WWW-Authenticate: Basic realm="my realm"');
  header('HTTP/1.0 401 Unauthorized');
  exit;
} else {
  echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
  echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}

но тогда я получаю форму аутентификации. Есть ли способ передать заголовок учетные данные, используемые при входе в Windows?

Спасибо, Radu.

Ответы [ 2 ]

1 голос
/ 01 марта 2010

Вы можете сделать это, написав свою собственную вызываемую аутентификацию для sfDoctrineGuardPlugin (если вы используете Doctrine). Я процитирую плагины README здесь:

Проверка пароля пользователя с помощью внешнего метода

Если вы не хотите хранить пароль в базе данных, потому что вы уже есть сервер LDAP, .htaccess или если вы храните пароли в другой таблице вы можете предоставить свой checkPassword вызываемый (статический метод или функция) в app.yml:

all:
  sf_guard_plugin:
    check_password_callable: [MyLDAPClass, checkPassword]

Когда Symfony будет вызывать $this->getUser()->checkPassword() метод, он будет вызывать ваш метод или функция. Ваша функция должна занять 2 параметры, первым является имя пользователя и второй является пароль. Должен вернуть true или ложный. Вот шаблон для такого Функция:

function checkLDAPPassword($username, $password)
{
  $user = LDAP::getUser($username);
  if ($user->checkPassword($password))
  {
    return true;
  }
  else
  {
    return false;
  }
}
1 голос
/ 01 марта 2010

Вы можете попробовать bhLDAPAuthPlugin ?

...