проверка подлинности Windows с использованием AJAX - PullRequest
2 голосов
/ 23 сентября 2011

Я хочу создать внутренний веб-сайт, предпочтительно на asp.net, который использует вызовы ajax для выполнения всех операций.

Требования заключаются в том, что сайт должен использовать проверку подлинности домена Windows (для решения проблемы единого входа) для проверки того, какой пользователь отправляет запрос. Каков наилучший способ сделать это безопасным способом? Я открыт для решения с использованием https, файлов cookie или чего-либо еще возможного.

(Я бы предпочел обычный ajax с использованием jquery, так как я не использовал asp.net ajax, но если это легче решит некоторые проблемы, то дайте мне знать)

В настоящее время я делаю это (не через ajax): отключаю анонимный доступ в iis, а затем получаю зарегистрированное имя пользователя от asp.net, но для этого требуется, чтобы сайт выполнял обратные вызовы и т. Д., Которых я хочу избежать. 1007 *

Ответы [ 3 ]

1 голос
/ 23 сентября 2011

Ajax-запрос не отличается от любого другого HTTP-запроса, когда дело доходит до аутентификации.

Скорее всего, ваш пользователь будет аутентифицирован, когда получит доступ к индексу вашего сайта. Любой последующий запрос, Ajax или нет, будет аутентифицирован. В этом нет ничего особенного, и ваш код jQuery будет выглядеть так же, как обычно.

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

Проверка подлинности Windows проверяется при каждом запросе. От того, как это проверено, зависит, какой метод / провайдер аутентификации включен и поддерживается на сервере (kerberos, ntlm, custom и т. Д.)

Учетные данные автоматически отправляются по определенным правилам (я полагаю, что интрасеть является доверенной для IE, я не помню, что еще кроме этого). Firefox подскажет, вспомню ли я каждый раз.

Выезд: http://www.winserverkb.com/Uwe/Forum.aspx/iis-security/5707/IIS-6-0-Windows-Authentication-401-Every-Request

Важно отметить, что браузер и сервер позаботятся об этом и при необходимости предложат пользователю.

Также следует отметить, что я настоятельно рекомендую, чтобы ВСЕ трафик находился под SSL-соединением на этом этапе, чтобы предотвратить перехват и хищение учетных данных / токенов (например, это очень просто для базовой аутентификации)

Вы можете включить эту защиту внутри IIS и использовать все права доступа к файлам, или вы можете управлять этим в своих веб-приложениях web.config, включив проверку подлинности Windows. Как это сделать, зависит от конфигурации вашего сервера (поддержка Kerberos и т. Д.)

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

Вы должны абсолютно:

  1. Использовать соединение https для передачи имени пользователя и пароля

  2. Аутентификация на стороне сервера с asp.net

  3. Используйте сеанс asp.net в максимально возможной степени.

Если вы не знакомы с ASP.Net ..ну, посчитайте это хорошей возможностью для изучения:)

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

ИМХО ...

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