Аутентификация формы ASP.NET + NTLM + LDAP - PullRequest
3 голосов
/ 03 апреля 2011

Я пытаюсь добавить поддержку LDAP на существующий веб-сайт ASP.NET, использующий проверку подлинности с помощью форм. Это не большая проблема, я просто создаю простой диалог входа в систему (обычный HTTP POST), запрашиваю каталог LDAP и регистрирую пользователя через билет проверки подлинности формы.

Было бы очень приятно автоматически получать учетные данные пользователей через NTLM (встроенную проверку подлинности Windows) без необходимости в диалоговом окне входа в систему (например, при использовании проверки подлинности Windows ASP.NET с компьютерами в той же Active Directory). Есть ли простой способ сделать это (имейте в виду, я не могу использовать проверку подлинности Windows для своего приложения ASP.NET, и сервер не находится в домене Active Directory, мне нужно иметь возможность запрашивать каталог LDAP вручную)? Или мне нужно было бы вручную выполнить все действия по рукопожатию / вызову / ответу LDAP?

Спасибо за вашу помощь, ~ saxx

1 Ответ

1 голос
/ 19 мая 2011

Я делаю это в своей внутренней сети.Вот шаги, которые я использую ...

  • Создайте страницу входа (login.aspx кажется хорошим) и настройте веб-приложение для проверки подлинности с помощью форм.Установить авторизацию как отрицать анонимность.Это означает, что любая попытка использовать ваше приложение приведет к тому, что пользователь будет перенаправлен на вашу страницу входа в систему, если у него нет авторизационного билета.
  • Теперь важный шаг.В IIS установите приложение, чтобы разрешить только анонимный доступ.На странице входа в систему измените это только на Windows Integrated.Теперь, когда пользователь возвращается на вашу страницу входа, IIS вызывает проверку подлинности NTLM.Теперь у нас есть имя пользователя в заголовках.
  • 2-й важный шаг.в методе page_load добавьте:

    FormsAuthentication.RedirectFromLoginPage(Request.ServerVariables["Logon_user"], false); Для этого нужно взять имя пользователя, которое IIS всегда будет выдавать, и поместить в форму авторизационный билет.Вы можете захотеть внести определенную сумму, например, добавив функцию выхода из системы или удалив доменное имя пользователя.

    Simon

...