Spec-Zone.ru › Apache HTTP Server

Модуль 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, не требуя от пользователей присвоения новых паролей.

Обратный процесс переключения с Basic на Digest Authentication без присвоения новых паролей, как правило, невозможен. Только если пароли Basic Authentication были сохранены в виде простого текста или с обратимой схемой шифрования, их можно будет восстановить и сгенерировать новое хранилище данных, соответствующее схеме хранения паролей Digest Authentication.
Только поставщики, поддерживающие Digest 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API