HTTP-аутентификация - заголовок WWW-Authenticate - несколько областей - PullRequest
13 голосов
/ 26 августа 2010

Есть ли у кого-нибудь опыт поддержки нескольких областей в HTTP-аутентификации?

На веб-сайте Microsoft говорится:

Каждый заголовок ответа проверки подлинности содержит доступную схему проверки подлинности и область.Если поддерживается несколько схем аутентификации, сервер возвращает несколько заголовков ответов аутентификации.Значение области чувствительно к регистру и определяет пространство защиты на прокси или сервере.Например, заголовок "WWW-Authenticate: Basic Realm =" example "" мог бы быть примером заголовка, возвращаемого, когда требуется аутентификация сервера.защищены с использованием различных методов аутентификации.Что нас смущает, так это то, как определить, какая область должна быть указана в ответе сервера на запрос клиента.

У кого-нибудь есть примеры того, как работают несколько областей?

Ответы [ 2 ]

10 голосов
/ 26 августа 2010

Спецификация HTTP допускает наличие нескольких ответов WWW-Authenticate в ответе, либо в одном и том же заголовке WWW-Authenticate, либо с использованием нескольких заголовков WWW-Authenticate в одном ответе.

С этим связаны проблемы, как описано в RFC 2617, раздел 4.6 .Теоретически, клиент должен выбрать самый сильный доступный механизм аутентификации, однако определить, какой из них самый сильный, не всегда очевидно.

Я никогда не пробовал использовать несколько областей (и одну и ту же схему, например, Basic)., но я не знаю ничего, что бы запретило это.Основная проблема с несколькими областями и одной и той же схемой заключается в том, что браузер, вероятно, будет сбит с толку с точки зрения пользовательского интерфейса, в частности, в какой области он бросает вызов пользователю.

5 голосов
/ 09 апреля 2013

У меня есть один хороший пример использования нескольких заголовков аутентификации при использовании сайта sharepoint. Sharepoint предлагает и переговоры, и NTLM при первом подключении.

Firefox выбирает NTLM, а Chrome выбирает переговоры.

Это также является следствием того, что Chrome всегда отправляет заголовок авторизации вместе с другими запросами, но Firefox только в начале из-за протокола ответа на вызов NTLM. Смотрите здесь больше объяснений http://www.innovation.ch/personal/ronald/ntlm.html

...