Apache模块 mod_authn_dbd

说明 使用SQL数据库为认证提供支持
状态 扩展(E)
模块名 authn_dbd_module
源文件 mod_authn_dbd.c
兼容性 仅在 Apache 2.1 及以后的版本中可用

概述

This module provides authentication front-ends such as mod_auth_digestmod_auth_basic to authenticate users by looking up users in SQL tables. Similar functionality is provided by, for example, mod_authn_file.

This module relies on mod_dbd to specify the backend database driver and connection parameters, and manage the database connections.

When using mod_auth_basicmod_auth_digest, this module is invoked via the AuthBasicProviderAuthDigestProvider with the dbd value.

Configuration Example

This simple example shows use of this module in the context of the Authentication and DBD frameworks.

#Database Management

#Use the PostgreSQL driver
DBDriver pgsql

#Connection string: database name and login credentials
DBDParams "dbname=htpasswd user=apache pass=xxxxxx"

#Parameters for Connection Pool Management
DBDMin  1
DBDKeep 2
DBDMax  10
DBDExptime 60

#Authentication Section
<Directory /usr/www/myhost/private>

    #mod_auth configuration for authn_dbd
    AuthType Basic
    AuthName "My Server"
    AuthBasicProvider dbd

    #authz configuration
    Require valid-user

    #SQL query to verify a user
    #(note: DBD drivers recognise both stdio-like %s and native syntax)
    AuthDBDUserPWQuery "select password from authn where username = %s"
</Directory>

AuthDBDUserPWQuery 指令

说明 SQL query to look up a password for a user
语法 AuthDBDUserPWQuery query
作用域 directory
覆盖项 AuthConfig
状态 扩展(E)
模块 mod_authn_dbd

AuthDBDUserPWQuery specifies an SQL query to look up a password for a specified user. The query must take a single string (typically SQL varchar) argument (username), and return a single value (encrypted password).

    AuthDBDUserPWQuery "SELECT password FROM authn WHERE username = %s"

AuthDBDUserRealmQuery 指令

说明 SQL query to look up a password hash for a user and realm.
语法 AuthDBDUserRealmQuery query
作用域 directory
覆盖项 AuthConfig
状态 扩展(E)
模块 mod_authn_dbd

AuthDBDUserRealmPWQuery specifies an SQL query to look up a password for a specified user and realm. The query must take two string (typically SQL varchar) arguments (username and realm), and return a single value (encrypted password).

    AuthDBDUserRealmPWQuery "SELECT password FROM authn
                                    WHERE username = %s AND realm = %s"