Apache HTTP Server 版本2.2
说明 | 使用SQL数据库为认证提供支持 |
---|---|
状态 | 扩展(E) |
模块名 | authn_dbd_module |
源文件 | mod_authn_dbd.c |
兼容性 | 仅在 Apache 2.1 及以后的版本中可用 |
该模块为认证前端(mod_auth_digest
和mod_auth_basic
)使用SQL数据库进行用户认证提供支持。mod_authn_file
模块也提供类似的功能。
本模块依赖于mod_dbd
指定的后端数据库驱动程序和连接参数以及管理数据库连接。
使用mod_auth_basic
或mod_auth_digest
的时候,可以通过在AuthBasicProvider
或AuthDigestProvider
指令中使用dbd
值调用该模块。
下面这个简单的示例展示了如何在基于DBD框架的认证环境中使用该模块。
#数据库管理 #使用PostgreSQL驱动程序DBDriver pgsql
#连接字符串:数据库名 用户名 密码DBDParams "dbname=htpasswd user=apache password=xxxxxx"
#管理连接池的参数DBDMin 1 DBDKeep 2 DBDMax 10 DBDExptime 60
#认证部分<Directory /usr/www/myhost/private>
#基于authn_dbd的认证配置AuthType Basic AuthName "My Server" AuthBasicProvider dbd
#授权配置Require valid-user
#验证用户的SQL查询语句 #(注意:DBD驱动程序同时允许stdio风格的 %s 和特定于数据库的语法)AuthDBDUserPWQuery "select password from authn where username = %s" </Directory>
说明 | 检索用户密码的SQL查询语句 |
---|---|
语法 | AuthDBDUserPWQuery query |
作用域 | directory |
覆盖项 | AuthConfig |
状态 | 扩展(E) |
模块 | mod_authn_dbd |
AuthDBDUserPWQuery
指定了从数据库中检索用户密码的SQL查询语句。该查询语句必须接受一个单独的字符串(通常是SQL里的varchar类型)参数(username),同时返回一个单独的字符串值(hash过的密码)。
AuthDBDUserPWQuery "SELECT password FROM authn WHERE username = %s"
说明 | 为用户名与认证区域的组合检索密码的SQL查询语句 |
---|---|
语法 | AuthDBDUserRealmQuery query |
作用域 | directory |
覆盖项 | AuthConfig |
状态 | 扩展(E) |
模块 | mod_authn_dbd |
AuthDBDUserRealmPWQuery
指定了从数据库中检索一个用户名与认证区域的组合的密码的SQL查询语句。该查询语句必须接受两个单独的字符串(通常是SQL里的varchar类型)参数(username, realm),同时返回一个单独的字符串值(hash过的密码)。
AuthDBDUserRealmPWQuery "SELECT password FROM authn WHERE username = %s AND realm = %s"