mod_authn_dbd#

Описание#

mod_authn_dbd предназначен для аутентификации пользователей с использованием баз данных, управляемых через интерфейс DBD (Database Driver). Позволяет интегрировать аутентификацию пользователей с различными системами управления базами данных (СУБД).

Предоставляет интерфейсы аутентификации, такие как mod_auth_digest и mod_auth_basic, для аутентификации пользователей путем поиска их в таблицах SQL. Аналогичная функциональность предоставляется, например, mod_authn_file.

Примечание

mod_authn_dbd использует для указания драйвера серверной базы данных и параметров подключения, а также для управления подключениями к базе данных модуль mod_db.

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

Пример конфигурации, настроенной с помощью модуля mod_authn_dbd, в контексте фреймворков аутентификации и баз данных:

# Конфигурация модуля mod_dbd
# Указыание драйвера базы данных
DBDriver pgsql
# Параметры подключения к базе данных
DBDParams "dbname=apacheauth user=apache password=xxxxxx"

# Минимальное количество соединений, которые будут поддерживаться
DBDMin  4
# Количество соединений, которые будут поддерживаться в пуле
DBDKeep 8
# Максимальное количество соединений, которые могут быть открыты одновременно
DBDMax  20
# Время (в секундах), через которое соединения будут считаться устаревшими
DBDExptime 300

# Настройка для защищенной директории
<Directory "/usr/www/myhost/private">
  # Конфигурация для модулей mod_authn_core и mod_auth_basic
  # Установка типа аутентификации — базовая
  AuthType Basic
  # Имя области аутентификации, отображаемое пользователю
  AuthName "My Server"

  # Для кеширования учетных данных сначала socache, затем dbd
  # Указание, что аутентификация будет происходить через кеш и базу данных
  AuthBasicProvider socache dbd

  # Также необходимо для кеширования: указание, что необходимо кешировать запросы dbd
  # Указание, что кеш будет предоставлять данные для dbd
  AuthnCacheProvideFor dbd
  # Указание контекста кеширования
  AuthnCacheContext my-server

  # Конфигурация для модуля mod_authz_core
  # Требование, чтобы пользователь был аутентифицирован
  Require valid-user

  # SQL-запрос для аутентификации пользователя через mod_authn_dbd
  # Запрос для получения пароля пользователя из таблицы authn
  AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
</Directory>

Директивы#

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

Директивы mod_authn_dbd#

Синтаксис

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

Контекст

Описание

AuthDBDUserPWQuery <query>

Нет

directory

Задает SQL-запрос для поиска пароля указанного пользователя. Идентификатор пользователя будет передан как единственный параметр строки при выполнении SQL-запроса. Его можно использовать в операторе запроса с помощью спецификатора формата %s

AuthDBDUserRealmQuery <query>

Нет

directory

Задает SQL-запрос для поиска хеша пароля указанного пользователя и области в процессе дайджест-аутентификации. Идентификатор пользователя и область в указанном порядке будут переданы как параметры строки при выполнении SQL-запроса. Их можно использовать в операторе запроса с помощью спецификаторов формата %s