描述: | 使用SQL数据库的用户身份验证 |
---|---|
状态: | 延期 |
模块标识符: | 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
值调用此模块
。
HTTPD 2.2 / 2.4中的一些DBD身份验证用户报告说,这对数据库造成了问题。在HTML页面包含数百个对象(例如,图像,脚本等)的每个对象中,每个对象都需要身份验证,这很有可能。受此类问题影响(或与之相关)的用户应使用mod_authn_socache
缓存凭据并减轻数据库的大部分负担。
这个简单的示例说明了如何在Authentication和DBD框架的上下文中使用此模块。
# mod_dbd configuration # UPDATED to include authentication caching 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 and mod_auth_basic configuration # for mod_authn_dbd AuthType Basic AuthName "My Server" # To cache credentials, put socache ahead of dbd here AuthBasicProvider socache dbd # Also required for caching: tell the cache to cache dbd lookups! AuthnCacheProvideFor dbd AuthnCacheContext my-server # mod_authz_core configuration Require valid-user # mod_authn_dbd SQL query to authenticate a user AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s" </Directory>
如果httpd是针对APR 1.3.0或更高版本构建的,则每当对数据库服务器进行查询时,使用带有前缀“ AUTHENTICATE_”的环境变量,将查询返回的第一行中的所有列值都放在环境中。 。
例如,如果数据库查询返回了用户名,用户的全名和电话号码,则CGI程序将可以访问此信息,而无需进行第二次独立的数据库查询来收集此附加信息。
这有可能极大简化某些Web应用程序中所需的编码和配置。
描述: | SQL查询以查找用户密码 |
---|---|
句法: | AuthDBDUserPWQuery query |
内容: | 目录 |
状态: | 延期 |
模块: | mod_authn_dbd |
在AuthDBDUserPWQuery
指定的SQL查询来查找密码指定用户。执行SQL查询时,用户ID将作为单个字符串参数传递。可以使用%s
格式说明符在查询语句中引用它。
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
查询语句返回的第一行的第一列值应该是包含加密密码的字符串。随后的行将被忽略。如果未返回任何行,则不会通过验证用户mod_authn_dbd
。
如果httpd是针对APR 1.3.0或更高版本构建的,则查询语句返回的第一行中的任何其他列值都将作为环境变量存储,格式为。
AUTHENTICATE_COLUMN
加密的密码格式取决于所使用的身份验证前端(例如mod_auth_basic
或
mod_auth_digest
)。有关更多信息,请参见密码格式。
描述: | SQL查询以查找用户和领域的密码哈希。 |
---|---|
句法: | AuthDBDUserRealmQuery query |
内容: | 目录 |
状态: | 延期 |
模块: | mod_authn_dbd |
用于AuthDBDUserRealmQuery
指定一个SQL查询,以在摘要身份验证过程中查找指定用户和领域的密码。当执行SQL查询时,将按此顺序将用户ID和领域作为字符串参数传递。可以使用%s
格式说明符在查询语句中引用它们。
AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"
查询语句返回的第一行的第一列值应该是包含加密密码的字符串。随后的行将被忽略。如果未返回任何行,则不会通过验证用户mod_authn_dbd
。
如果httpd是针对APR 1.3.0或更高版本构建的,则查询语句返回的第一行中的任何其他列值都将作为环境变量存储,格式为。
AUTHENTICATE_COLUMN
加密的密码格式取决于所使用的身份验证前端(例如mod_auth_basic
或
mod_auth_digest
)。有关更多信息,请参见密码格式。