Apache 模块 mod_authn_dbm

Description:使用 DBM 文件的用户身份验证
Status:Extension
Module Identifier:authn_dbm_module
Source File:mod_authn_dbm.c
Compatibility:在 Apache 2.1 及更高版本中可用

Summary

该模块提供了诸如mod_auth_digestmod_auth_basic之类的身份验证前端,以通过在 dbm 密码文件中查找用户来对用户进行身份验证。 mod_authn_file提供了类似的功能。

使用mod_auth_basicmod_auth_digest时,此模块通过AuthBasicProviderAuthDigestProviderdbm值调用。

AuthDBMType Directive

Description:设置用于存储密码的数据库文件的类型
Syntax:AuthDBMType default|SDBM|GDBM|NDBM|DB
Default:AuthDBMType default
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_authn_dbm

设置用于存储密码的数据库文件的类型。默认数据库类型在编译时确定。其他类型的数据库文件的可用性还取决于compile-time settings

例如,为了启用对 Berkeley DB(与db类型对应)的支持,需要将--with-berkeley-db选项添加到 httpd 的 configure 中以生成必要的 DSO。

至关重要的是,将用于创建密码文件的任何程序配置为使用相同类型的数据库。

AuthDBMUserFile Directive

Description:设置数据库文件的名称,该数据库文件包含用于身份验证的用户列表和密码
Syntax:AuthDBMUserFile file-path
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_authn_dbm

AuthDBMUserFile伪指令设置 DBM 文件的名称,该文件包含用户列表和用于用户认证的密码。文件路径是用户文件的绝对路径。

用户文件键入用户名。用户的值是加密的密码,可以选择后面跟一个冒号和任意数据。服务器将忽略冒号及其后的数据。

Security:

确保AuthDBMUserFile存储在 Web 服务器的文档树之外; 不要将其放在受保护的目录中。否则,Client 端将可以下载AuthDBMUserFile

加密的密码格式取决于所使用的身份验证前端(例如mod_auth_basicmod_auth_digest)。有关更多信息,请参见Password Formats

重要的兼容性说明:Apache 模块中dbmopen的实现从 DBM 数据结构中读取哈希值的字符串长度,而不是依赖于将字符串附加为 NULL 的情况。某些应用程序(例如 Netscape Web 服务器)依赖于在字符串后加上 NULL,因此,如果您在应用程序之间无法互换使用 DBM 文件时遇到问题,则可能是问题的一部分。

Apache 附带了一个名为dbmmanage的 perl 脚本。该程序可用于创建和更新 DBM 格式的密码文件,以便与此模块一起使用。维护 DBM 文件的另一个工具是包含的程序htdbm