mod_authz_dbd#

Описание#

mod_authz_dbd предназначен для управления авторизацией пользователей с использованием баз данных. Он позволяет проверять, имеет ли пользователь доступ к определенным ресурсам, основываясь на данных, хранящихся в реляционных базах данных, через интерфейс DBD (Database Driver).

Директивы Require используются на этапе авторизации, чтобы гарантировать, что пользователю разрешен доступ к ресурсу. mod_authz_dbd расширяет типы авторизации с помощью:

  • Require dbd-group - определяет группу, к которой необходимо относиться пользователю для получения доступа;

  • Require dbd-login - определяет, какой запрос должен выполняться, если пользователь вошел в систему;

  • Require dbd-logout - определяет выполняемый запрос, указывающий на то, что пользователь вышел из системы.

Примечание

Для работы с базами данных необходим модуль mod_dbd.

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

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

# Указывание драйвера базы данных
DBDriver mysql
# Задание параметров подключения к базе данных
DBDParams "dbname=mydb user=myuser password=mypassword"
# Минимальное количество соединений
DBDMin 4
# Максимальное количество соединений
DBDMax 20

# Определение SQL-запроса для авторизации пользователя
AuthzDBDUserQuery "SELECT role FROM users WHERE username = %s"

<Location "/secure">
    AuthType Basic
    AuthName "Restricted Area"
    # Указание, что аутентификация будет через DBD
    AuthBasicProvider dbd
    # Требование, чтобы пользователь был аутентифицирован
    Require valid-user
    # Проверка, что у пользователя есть роль admin
    Require dbd role admin
</Location>

Директивы#

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

Директивы mod_authz_dbd#

Синтаксис

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

Контекст

Описание

AuthzDBDLoginToReferer On|Off

AuthzDBDLoginToReferer Off

directory

Определяет, следует ли перенаправлять клиента на реферальную страницу после успешного входа или выхода, если заголовок Referer присутствует в запросе. При отсутствии заголовка Referer значение AuthzDBDLoginToReferer On будет проигнорировано

AuthzDBDQuery <query>

Нет

directory

Указывает SQL-запрос для выполнения. Цель запроса зависит от действующей директивы Require

AuthzDBDRedirectQuery <query>

Нет

directory

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