Spec-Zone.ru › Apache HTTP Server

Модуль 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

Spec-Zone.ru

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