• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • mod_authn_dbd

    描述:使用 SQL 数据库的用户身份验证
    状态:延期
    模块标识符:authn_dbd_module
    源文件:mod_authn_dbd.c
    兼容性:可在 Apache 2.1 及更高版本中使用

    摘要

    此模块提供身份验证 front-ends,例如mod_auth_digest和mod_auth_basic,以通过在 SQL 表中查找用户来对用户进行身份验证。例如,mod_authn_file提供了类似的功能。

    此模块依赖mod_dbd指定后端数据库驱动程序和连接参数,并管理数据库连接。

    使用mod_auth_basic或mod_auth_digest时,通过带dbd value 的AuthBasicProvider或AuthDigestProvider 指令调用此模块。

    性能和缓存

    HTTPD 2.2/2.4 中的一些 DBD 身份验证用户报告说它在数据库上施加了有问题的负载。这很可能是 HTML 页面包含数百个 objects(e.g.图像,脚本等),每个都需要身份验证。受此类问题影响(或担心)的用户应使用mod_authn_socache来缓存凭据并从数据库中获取大部分负载。

    Configuration Example

    这个简单的 example 显示了在 Authentication 和 DBD 框架的 context 中使用这个模块。

    # mod_dbd configuration
    # UPDATED to include authentication cacheing
    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 version 1.3.0 或更高版本构建的,那么每当对数据库服务器进行查询时,查询返回的第一行中的所有列值都将使用前缀为“AUTHENTICATE_”的环境变量放置在环境中。

    如果 example 的数据库查询返回用户的用户名,完整 name 和电话号码,则 CGI 程序将可以访问此信息,而无需进行第二次独立数据库查询来收集此附加信息。

    这有可能大大简化某些 web applications 所需的编码和配置。

    AuthDBDUserPWQuery 指令

    描述:用于查找用户密码的 SQL 查询
    句法:AuthDBDUserPWQuery query
    Context:目录
    状态:延期
    模块:mod_authn_dbd

    AuthDBDUserPWQuery指定用于查找指定用户的密码的 SQL 查询。执行 SQL 查询时,用户的 ID 将作为单个 string 参数传递。它可以使用%s格式说明符在查询语句中引用。

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

    查询语句返回的第一行的第一列 value 应该是包含加密密码的 string。后续行将被忽略。如果未返回任何行,则不会通过mod_authn_dbd对用户进行身份验证。

    如果 httpd 是针对APR version 1.3.0 或更高版本构建的,则查询语句返回的第一行中的任何其他列值将存储为名称格式为AUTHENTICATE_COLUMN的环境变量。

    加密的密码格式取决于正在使用的身份验证前端(e.g.mod_auth_basic或mod_auth_digest)。有关更多信息,请参见密码格式。

    AuthDBDUserRealmQuery 指令

    描述:用于查找用户和领域的密码哈希的 SQL 查询。
    句法:AuthDBDUserRealmQuery query
    Context:目录
    状态:延期
    模块:mod_authn_dbd

    AuthDBDUserRealmQuery指定 SQL 查询以在摘要认证 process 中查找指定用户和领域的密码。在执行 SQL 查询时,该 order 中的用户 ID 和领域将作为 string 参数传递。可以使用%s格式说明符在查询语句中引用它们。

    AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"
    

    查询语句返回的第一行的第一列 value 应该是包含加密密码的 string。后续行将被忽略。如果未返回任何行,则不会通过mod_authn_dbd对用户进行身份验证。

    如果 httpd 是针对APR version 1.3.0 或更高版本构建的,则查询语句返回的第一行中的任何其他列值将存储为名称格式为AUTHENTICATE_COLUMN的环境变量。

    加密的密码格式取决于正在使用的身份验证前端(e.g.mod_auth_basic或mod_auth_digest)。有关更多信息,请参见密码格式。

    上篇:mod_authn_core

    下篇:mod_authn_dbm