Когда вы отправляете запрос без аутентификации, служба должна ответить «HTTP / 1.1 401 Unauthorized», и ответ содержит заголовок WWW-Authenticate
, который указывает, какая схема аутентификации ожидается (Basic
, Digest
),область безопасности и любое другое конкретное значение (например, одноразовый номер Дидже).Поэтому, если сервер отвечает:
HTTP/1.0 401 Unauthorized
WWW-Authenticate: Digest realm="example.com",
qop="auth,auth-int",
nonce="...",
opaque="..."
, он хочет получить дайджест-проверку подлинности.Если ответ выглядит следующим образом:
HTTP/1.0 401 Unauthorized
WWW-Authenticate: Basic realm="example.com"
, тогда требуется обычная аутентификация.Некоторые (плохо) реализованные серверы / сайты не обрабатывают Basic правильно и отвечают напрямую 403 Запрещено, вместо того, чтобы сначала бросить вызов.
NTLM аналогичен тому, что сервер отвечает 401 и заголовок WWW-Authenticate сзначение NTLM
, но для него не существует официальной публичной спецификации, так как является собственностью Microsoft.Существуют различные обратные инженерные описания.
К сожалению, REST не поставляется с описанием службы WSDL в стиле для обнаружения схемы аутентификации, используемой a priori .