Заголовки: Authorization
Заголовок Authorization
Базовая поддержка Широко доступно *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
* Некоторые части этой функции могут иметь разный уровень поддержки.
HTTP-заголовок Authorization запроса можно использовать для передачи учетных данных, которые аутентифицируют пользовательский агент на сервере и предоставляют доступ к защищенным ресурсам.
Заголовок Authorization обычно, но не всегда, отправляется после первой попытки пользовательского агента запросить защищенный ресурс без учетных данных. Сервер отвечает сообщением 401 Unauthorized, содержащим как минимум один заголовок WWW-Authenticate. Этот заголовок указывает схемы аутентификации, которые можно использовать для доступа к ресурсу, а также дополнительные сведения, необходимые клиенту для их использования. Пользовательский агент должен выбрать наиболее безопасную из предложенных схем аутентификации, которую он поддерживает, запросить у пользователя учетные данные, а затем повторно запросить ресурс, передав закодированные учетные данные в заголовке Authorization.
Этот заголовок удаляется при перенаправлениях между источниками.
Примечание: Этот заголовок входит в состав общей платформы аутентификации HTTP. Его можно использовать с рядом схем аутентификации.
| Тип заголовка | Заголовок запроса |
|---|---|
| Запрещенный заголовок запроса | Нет |
Синтаксис
Authorization: <auth-scheme> <authorization-parameters>
// Basic authentication
Authorization: Basic <credentials>
// Digest authentication
Authorization: Digest username=<username>,
realm="<realm>",
uri="<url>",
algorithm=<algorithm>,
nonce="<nonce>",
nc=<nc>,
cnonce="<cnonce>",
qop=<qop>,
response="<response>",
opaque="<opaque>"
Директивы
<auth-scheme>-
Схема аутентификации, определяющая способ кодирования учетных данных. К наиболее распространенным типам относятся (без учета регистра):
Basic,Digest,NegotiateиAWS4-HMAC-SHA256.Примечание: Дополнительные сведения и варианты см. в разделе Аутентификация HTTP > Схемы аутентификации.
За исключением <auth-scheme>, остальные директивы относятся к конкретным схемам аутентификации. Как правило, сведения о них следует искать в соответствующих спецификациях (ниже перечислены ключи для небольшого числа схем).
Базовая аутентификация
<credentials>-
Учетные данные, закодированные в соответствии с указанной схемой.
Примечание: Сведения об алгоритме кодирования см. в примерах ниже, в разделе
WWW-Authenticate, в статье Аутентификация HTTP и в соответствующих спецификациях.
Дайджест-аутентификация
<response>-
Строка шестнадцатеричных цифр, доказывающая, что пользователь знает пароль. Алгоритм кодирует имя пользователя и пароль, область, cnonce, qop, nc и другие значения. Подробное описание приведено в спецификации.
username-
Строка в кавычках, содержащая имя пользователя для указанного
realm— в виде обычного текста или в виде хеш-кода в шестнадцатеричной записи. Если имя содержит символы, недопустимые в этом поле, вместо него можно использоватьusername*(но не одновременно с ним). username*-
Имя пользователя в расширенном формате, определенном в RFC5987. Его следует использовать только в том случае, если имя нельзя закодировать в
usernameи если дляuserhashзадано значение"false". uri-
Эффективный URI запроса. Дополнительные сведения см. в спецификации.
realm-
Область, к которой относятся запрашиваемые имя пользователя и пароль (она должна совпадать со значением в соответствующем ответе
WWW-Authenticateдля запрашиваемого ресурса). opaque-
Значение из соответствующего ответа
WWW-Authenticateдля запрашиваемого ресурса. algorithm-
Алгоритм, используемый для вычисления дайджеста. Он должен поддерживаться и быть указан в ответе
WWW-Authenticateдля запрашиваемого ресурса. qop-
Токен, указывающий уровень защиты, примененный к сообщению. Он должен совпадать с одним из значений набора, указанного в ответе
WWW-Authenticateдля запрашиваемого ресурса.-
"auth": аутентификация -
"auth-int": аутентификация с защитой целостности
-
cnonce-
Строковое значение в кавычках, содержащее только символы ASCII и предоставляемое клиентом. Оно используется и клиентом, и сервером для взаимной аутентификации, некоторой защиты целостности сообщений и предотвращения «атак с выбранным открытым текстом». Дополнительные сведения см. в спецификации.
nc-
Счетчик nonce. Шестнадцатеричное число запросов, в которых клиент отправил текущее значение
cnonce(включая текущий запрос). Сервер может распознавать повторно отправленные запросы по повторяющимся значениямnc. userhashНеобязательно-
"true", если имя пользователя было хешировано. По умолчанию —"false".
Примеры
>Базовая аутентификация
Для аутентификации Basic учетные данные формируются путем объединения имени пользователя и пароля через двоеточие (например, aladdin:opensesame), а затем кодирования полученной строки в base64 (например, YWxhZGRpbjpvcGVuc2VzYW1l).
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
Предупреждение: Кодирование в Base64 легко обратить, чтобы получить исходные имя и пароль, поэтому аутентификация Basic не обеспечивает криптографическую защиту. При использовании аутентификации всегда рекомендуется применять HTTPS, особенно при использовании аутентификации Basic.
Примеры настройки серверов Apache или Nginx для защиты сайта паролем с помощью базовой аутентификации HTTP см. в статье Аутентификация HTTP.
Спецификации
| Спецификация |
|---|
| Семантика HTTP> # field.authorization> |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
Basic |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 37 | 1 |
Digest |
1 | 79 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 | 1 |
NTLM |
1 | 79 | 1 | 15 | ≤7 | 18 | 4 | 14 | ≤7 | 1.0 | 4.4 | ≤7 |
Negotiate |
1 | 79 | 1 | 15 | ≤7 | 18 | 4 | 14 | ≤7 | 1.0 | 4.4 | ≤7 |
Authorization |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 | 1 |
authorization_removed_cross_origin |
Нет | Нет | 111 | Нет | 16.1 | Нет | 111 | Нет | 16.1 | Нет | Нет | 16.1 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Authorization