Модуль Apache mod_auth_basic
| Описание: | Базовая аутентификация HTTP |
|---|---|
| Статус: | Базовый |
| Идентификатор модуля: | auth_basic_module |
| Файл источника: | mod_auth_basic.c |
| Совместимость: | Доступен в Apache 2.1 и более поздних версиях |
Краткое описание
Этот модуль позволяет использовать HTTP Basic Authentication для ограничения доступа, выполняя поиск пользователей в заданных поставщиках. HTTP Digest Authentication предоставляется модулем mod_auth_digest. Обычно этот модуль следует комбинировать как минимум с одним модулем аутентификации, например, mod_authn_file, и одним модулем авторизации, например, mod_authz_user.
Директива AuthBasicAuthoritative
| Описание: | Устанавливает, передаются ли авторизация и аутентификация модулям более низкого уровня |
|---|---|
| Синтаксис: | AuthBasicAuthoritative On|Off |
| Значение по умолчанию: | AuthBasicAuthoritative On |
| Контекст: | каталог, .htaccess |
| Переопределяет: | AuthConfig |
| Статус: | Базовый |
| Модуль: | mod_auth_basic |
Обычно каждый модуль авторизации, перечисленный в AuthBasicProvider, пытается проверить пользователя, и если пользователь не найден ни в одном поставщике, доступ будет запрещен. Установка директивы AuthBasicAuthoritative в явном виде в Off позволяет передать как аутентификацию, так и авторизацию другим модулям, не основанным на поставщиках, если не найдено ни userID, ни правило, соответствующие предоставленному userID. Это необходимо только при комбинировании mod_auth_basic с модулями сторонних разработчиков, которые не сконфигурированы с директивой AuthBasicProvider. При использовании таких модулей порядок обработки определяется в исходном коде модулей и не настраивается.
Директива AuthBasicFake
| Описание: | Поддельная базовая аутентификация с использованием заданных выражений для имени пользователя и пароля |
|---|---|
| Синтаксис: | AuthBasicFake off|username [password] |
| Значение по умолчанию: | none |
| Контекст: | каталог, .htaccess |
| Переопределяет: | AuthConfig |
| Статус: | Базовый |
| Модуль: | mod_auth_basic |
| Совместимость: | Apache HTTP Server 2.4.5 и более поздние версии |
Указанные имя пользователя и пароль объединяются в заголовок Authorization, который передаётся серверу или службе, стоящим за веб-сервером. И имя пользователя, и поле пароля интерпретируются с помощью парсера выражений, что позволяет установить имя пользователя и пароль на основе параметров запроса.
Если пароль не указан, используется значение по умолчанию "password". Для отключения поддельной базовой аутентификации для пространства URL укажите "AuthBasicFake off".
В этом примере мы передаём фиксированные имя пользователя и пароль обратному серверу.
Фиксированный пример
<Location "/demo">
AuthBasicFake demo demopass
</Location> В этом примере мы передаём адрес электронной почты, извлечённый из сертификата клиента, расширяя функциональность опции FakeBasicAuth в директиве SSLOptions. Как и опция FakeBasicAuth, пароль устанавливается в строку "password".
Пример с сертификатом
<Location "/secure">
AuthBasicFake "%{SSL_CLIENT_S_DN_Email}"
</Location> Расширяя предыдущий пример, мы генерируем пароль, хэшируя адрес электронной почты с фиксированным паролем, и передаём хэш обратному серверу. Это может быть использовано для доступа к устаревшим системам, которые не поддерживают сертификаты клиентов.
Пример с паролем
<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 |
| Контекст: | каталог, .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
| Описание: | Проверка паролей по поставщикам аутентификации так, как если бы была в силе аутентификация Digest, а не Basic. |
|---|---|
| Синтаксис: | AuthBasicUseDigestAlgorithm MD5|Off |
| Значение по умолчанию: | AuthBasicUseDigestAlgorithm Off |
| Контекст: | каталог, .htaccess |
| Переопределяет: | AuthConfig |
| Статус: | Базовый |
| Модуль: | mod_auth_basic |
| Совместимость: | Apache HTTP Server 2.4.7 и более поздние версии |
Обычно при использовании Basic Authentication поставщики, перечисленные в AuthBasicProvider, пытаются проверить пользователя, проверяя свои хранилища данных на совпадение имени пользователя и соответствующего пароля. Хранящиеся пароли, как правило, зашифрованы, но не обязательно; каждый поставщик может выбрать свою схему хранения паролей.
При использовании AuthDigestProvider и Digest Authentication поставщики выполняют аналогичную проверку, чтобы найти соответствующее имя пользователя в своих хранилищах данных. Однако в отличие от случая с Basic Authentication, значение, связанное с каждым хранящимся именем пользователя, должно быть зашифрованной строкой, составленной из имени пользователя, имени области и пароля. (См. RFC 2617, раздел 3.2.2.2 для получения более подробной информации о формате, используемом для этой зашифрованной строки.)
Из-за различий в хранимых значениях между Basic и Digest Authentication, преобразование из Digest Authentication в Basic Authentication, как правило, требует, чтобы всем пользователям были присвоены новые пароли, так как их существующие пароли не могут быть восстановлены из схемы хранения паролей, наложенной на поставщиков, которые поддерживают Digest Authentication.
Установка директивы AuthBasicUseDigestAlgorithm в MD5 заставит сервер проверять базовый пароль пользователя, используя тот же зашифрованный формат, что и для Digest Authentication. Сначала строка, составленная из имени пользователя, имени области и пароля, хэшируется с помощью MD5; затем имя пользователя и эта зашифрованная строка передаются поставщикам, перечисленным в AuthBasicProvider, как будто AuthType была установлена в Digest и была активна аутентификация Digest.
Используя AuthBasicUseDigestAlgorithm, сайт может переключиться с Digest на Basic Authentication, не требуя от пользователей присвоения новых паролей.
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