mod_auth_digest#

Описание#

mod_auth_digest предназначен для реализации аутентификации пользователей с использованием протокола Digest Authentication. При данном методе аутентификации пароли не передаются в открытом виде.

Важно

Хранение паролей на сервере при дайджест-аутентификации менее надежно, чем при обычной аутентификации. Использование базовой аутентификации и шифрования всего соединения с помощью mod_ssl является лучшей альтернативой.

mod_auth_digest корректно работает на платформах, где APR поддерживает shared memory.

Примечание

Для создания файла с учетными данными пользователей, который будет использоваться модулем mod_auth_digest, потребуется утилита htdigest. Подробную информацию о ней можно получить, выполнив man htdigest.

Пример конфигурации#

Пример конфигурации, настроенной с помощью модуля mod_auth_digest:

# Применяет настройки аутентификации к URL-адресам, начинающимся с /private/
<Location "/private/">
    # Указание, что используется метод аутентификации Digest
    AuthType Digest
    # Имя области аутентификации, отображаемое в диалоговом окне
    AuthName "private area"
    # Определение области аутентификации для указанных URL-адресов
    AuthDigestDomain "/private/" "http://mirror.my.dom/private2/"
    
    # Указание, что учетные данные пользователей хранятся в файле
    AuthDigestProvider file
    # Путь к файлу с учетными данными пользователей
    AuthUserFile "/web/auth/.digest_pw"
    # Разрешает доступ только аутентифицированным пользователям
    Require valid-user
# Закрытие блока конфигурации <Location>
</Location>

Директивы#

Список директив модуля представлен в таблице ниже.

Директивы mod_auth_digest#

Синтаксис

Значение по умолчанию

Контекст

Описание

AuthDigestAlgorithm MD5|MD5-sess

AuthDigestAlgorithm MD5

directory, .htaccess

Выбирает алгоритм, используемый для вычисления хешей вызова и ответа в процессе дайджест-аутентификации

AuthDigestDomain <URI> [<URI> ...]

Нет

directory, .htaccess

Позволяет указать один или несколько URI, которые находятся в одной области защиты (т.е. используют одну и ту же область и информацию об имени пользователя/пароле). Указанные URI являются префиксами; клиент будет считать, что все URI «ниже» также защищены тем же именем пользователя/паролем. URI могут быть как абсолютными (включая схему, хост, порт и т.д.), так и относительными

AuthDigestNonceLifetime <seconds>

AuthDigestNonceLifetime 300

directory, .htaccess

Управляет тем, как долго серверный nonce остается действительным. Когда клиент обращается к серверу с истекшим nonce, сервер отправляет ответ 401 с stale=true. Если значение seconds больше 0, то указывает время, в течение которого nonce действителен. Если значение seconds меньше 0, то nonce никогда не истекает

AuthDigestProvider <provider-name> [<provider-name> ...]

AuthDigestProvider file

directory, .htaccess

Устанавливает, какие провайдеры используются для аутентификации пользователей в данном месте. Провайдер по умолчанию — file, реализованный модулем mod_authn_file. Убедитесь, что выбранный модуль провайдера присутствует на сервере

AuthDigestQop none|auth|auth-int [auth|auth-int]

AuthDigestQop auth

directory, .htaccess

Определяет качество защиты, используемое в процессе дайджест-аутентификации. Значение auth выполняет только аутентификацию (имя пользователя/пароль); auth-int выполняет аутентификацию и проверку целостности (также вычисляется и проверяется MD5-хеш сущности); none заставляет модуль использовать старый алгоритм Digest RFC-2069 (который не включает проверку целостности). Можно указать как auth, так и auth-int, в этом случае браузер выберет, какой из них использовать. Значение none следует использовать только в том случае, если браузер по какой-то причине не принимает полученный вызов

AuthDigestShmemSize <size>

AuthDigestShmemSize 1000

server config

Определяет количество общей памяти, которое будет выделено при запуске сервера для отслеживания клиентов. Сегмент общей памяти не может быть установлен меньше, чем пространство, необходимое для отслеживания хотя бы одного клиента. Это значение зависит от системы. Если необходимо узнать точное значение, можно установить AuthDigestShmemSize в 0 и прочитать сообщение об ошибке после попытки запустить сервер