Модуль Apache mod_auth_basic
| Описание: | Базовая HTTP-аутентификация |
|---|---|
| Статус: | Базовый |
| Идентификатор модуля: | auth_basic_module |
| Исходный файл: | mod_auth_basic.c |
| Совместимость: | Доступен в Apache 2.1 и более поздних версиях |
Краткое описание
Этот модуль позволяет использовать базовую HTTP-аутентификацию для ограничения доступа, проверяя пользователей у указанных провайдеров. HTTP-аутентификация с дайджестом предоставляется модулем mod_auth_digest. Обычно этот модуль следует использовать в сочетании как минимум с одним модулем аутентификации, например mod_authn_file, и одним модулем авторизации, например mod_authz_user.
Директива AuthBasicAuthoritative
| Описание: | Задает, передаются ли авторизация и аутентификация модулям более низкого уровня |
|---|---|
| Синтаксис: | AuthBasicAuthoritative On|Off |
| Значение по умолчанию: | AuthBasicAuthoritative On |
| Контекст: | directory, .htaccess |
| Переопределение: | AuthConfig |
| Статус: | Базовый |
| Модуль: | mod_auth_basic |
Обычно каждый модуль авторизации, указанный в AuthBasicProvider, пытается проверить пользователя, и если пользователь не найден ни у одного провайдера, доступ будет запрещен. Явная установка директивы AuthBasicAuthoritative в значение Off позволяет передавать аутентификацию и авторизацию другим модулям, не основанным на провайдерах, если идентификатор пользователя или правило не соответствуют указанному идентификатору пользователя. Это необходимо только при использовании mod_auth_basic вместе со сторонними модулями, которые не настроены с помощью директивы AuthBasicProvider. При использовании таких модулей порядок обработки определяется исходным кодом модулей и не может быть настроен.
Директива AuthBasicFake
| Описание: | Имитация базовой аутентификации с использованием заданных выражений для имени пользователя и пароля |
|---|---|
| Синтаксис: | AuthBasicFake off|username [password] |
| Значение по умолчанию: | none |
| Контекст: | directory, .htaccess |
| Переопределение: | AuthConfig |
| Статус: | Базовый |
| Модуль: | mod_auth_basic |
| Совместимость: | Apache HTTP Server 2.4.5 и более поздние версии |
Указанные имя пользователя и пароль объединяются в заголовок Authorization, который передается серверу или службе, расположенным за веб-сервером. Поля имени пользователя и пароля обрабатываются с помощью анализатора выражений, что позволяет задавать имя пользователя и пароль на основе параметров запроса.
Если пароль не указан, используется значение по умолчанию "password". Чтобы отключить имитацию базовой аутентификации для пространства URL, укажите "AuthBasicFake off".
В этом примере мы передаем серверу backend фиксированные имя пользователя и пароль.
Пример с фиксированными значениями
<Location "/demo">
AuthBasicFake demo demopass
</Location> В этом примере мы передаем адрес электронной почты, извлеченный из сертификата клиента, расширяя возможности параметра FakeBasicAuth в директиве SSLOptions. Как и для параметра FakeBasicAuth, пароль задается фиксированной строкой "password".
Пример с сертификатом
<Location "/secure">
AuthBasicFake "%{SSL_CLIENT_S_DN_Email}"
</Location> Расширяя приведенный выше пример, мы генерируем пароль, хешируя адрес электронной почты с фиксированной парольной фразой, и передаем хеш серверу backend. Это можно использовать для доступа к устаревшим системам, не поддерживающим сертификаты клиентов.
Пример с паролем
<Location "/secure">
AuthBasicFake "%{SSL_CLIENT_S_DN_Email}" "%{sha1:passphrase-%{SSL_CLIENT_S_DN_Email}}"
</Location> Пример исключения
<Location "/public">
AuthBasicFake off
</Location> Директива AuthBasicProvider
| Описание: | Задает провайдера(ов) аутентификации для этого расположения |
|---|---|
| Синтаксис: | AuthBasicProvider provider-name [provider-name] ... |
| Значение по умолчанию: | AuthBasicProvider file |
| Контекст: | directory, .htaccess |
| Переопределение: | AuthConfig |
| Статус: | Базовый |
| Модуль: | mod_auth_basic |
Директива AuthBasicProvider задает провайдера, используемого для аутентификации пользователей в этом расположении. Провайдер file по умолчанию реализован модулем mod_authn_file. Убедитесь, что выбранный модуль провайдера присутствует на сервере.
Пример
<Location "/secure">
AuthType basic
AuthName "private area"
AuthBasicProvider dbm
AuthDBMType SDBM
AuthDBMUserFile "/www/etc/dbmpasswd"
Require valid-user
</Location> Провайдеры проверяются по очереди, пока один из них не найдет соответствие запрошенному имени пользователя. После этого только этот провайдер пытается проверить пароль. Если пароль не удалось проверить, управление не передается следующим провайдерам.
Провайдеры реализованы модулями mod_authn_dbm, mod_authn_file, mod_authn_dbd, mod_authnz_ldap и mod_authn_socache.
Директива AuthBasicUseDigestAlgorithm
| Описание: | Проверяет пароли у провайдеров аутентификации так, как если бы использовалась аутентификация с дайджестом, а не базовая аутентификация. |
|---|---|
| Синтаксис: | AuthBasicUseDigestAlgorithm MD5|Off |
| Значение по умолчанию: | AuthBasicUseDigestAlgorithm Off |
| Контекст: | directory, .htaccess |
| Переопределение: | AuthConfig |
| Статус: | Базовый |
| Модуль: | mod_auth_basic |
| Совместимость: | Apache HTTP Server 2.4.7 и более поздние версии |
Обычно при использовании базовой аутентификации провайдеры, перечисленные в AuthBasicProvider, пытаются проверить пользователя, ища в хранилищах данных соответствующее имя пользователя и связанный с ним пароль. Сохраненные пароли обычно зашифрованы, но это не обязательно; каждый провайдер может выбирать собственную схему хранения паролей.
При использовании AuthDigestProvider и аутентификации с дайджестом провайдеры выполняют аналогичную проверку, чтобы найти в своих хранилищах данных соответствующее имя пользователя. Однако, в отличие от базовой аутентификации, значение, связанное с каждым сохраненным именем пользователя, должно быть зашифрованной строкой, составленной из имени пользователя, имени области и пароля. (Подробнее о формате этой зашифрованной строки см. в RFC 2617, раздел 3.2.2.2.)
Из-за различий между хранимыми значениями для базовой аутентификации и аутентификации с дайджестом переход с аутентификации с дайджестом на базовую аутентификацию обычно требует назначения новых паролей всем пользователям, поскольку существующие пароли невозможно восстановить из схемы хранения паролей, используемой провайдерами, поддерживающими аутентификацию с дайджестом.
Установка директивы AuthBasicUseDigestAlgorithm в значение MD5 приводит к тому, что пароль пользователя для базовой аутентификации проверяется с использованием того же зашифрованного формата, что и для аутентификации с дайджестом. Сначала строка, составленная из имени пользователя, имени области и пароля, хешируется с помощью MD5; затем имя пользователя и эта зашифрованная строка передаются провайдерам, перечисленным в AuthBasicProvider, как если бы для AuthType было задано значение Digest и использовалась аутентификация с дайджестом.
С помощью AuthBasicUseDigestAlgorithm сайт может перейти с аутентификации с дайджестом на базовую аутентификацию без необходимости назначать пользователям новые пароли.
AuthBasicUseDigestAlgorithm задано значение MD5, проходить аутентификацию смогут только пользователи через провайдеров, поддерживающих аутентификацию с дайджестом. Использование других провайдеров приведет к ошибке, и клиенту будет отказано в доступе.
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_auth_basic.html