Apache 2.0手册中文版翻译项目 [本文译者: flytosea * ]

项目说明 | 项目进度 | 项目讨论区 | Apache手册中文版

 


mod_auth - Apache HTTP服务器
<-
Apache主站 > HTTP服务器 > 文档 > 2.0版本 > 模块索引

Apache模块 mod_auth


现有的语种:  en  |  ja 

说明:使用文本文件来执行使用者认证
状态:Base
模块名:auth_module
源文件:mod_auth.c
兼容性:仅在2.1以前的版本中有效

概要

此模块提供了对HTTP基本认证的支持,它在明文的密码和组文件中查找用户,从而对访问进行限制。 mod_auth_dbm提供了类似的但更具伸缩性的功能; mod_auth_digest则提供了对HTTP摘要认证的支持。

指令索引

参见

top

AuthAuthoritative 指令

说明:指定是否将认证和授权操作交由更底层的模块来处理
语法:AuthAuthoritative On|Off
默认值:AuthAuthoritative On
上下文:目录, .htaccess
覆盖项:AuthConfig
状态:Base
模块:mod_auth

在明确地设置AuthAuthoritative指令为Off的情况下, 如果提供的userID不能与任何userID或者rule相匹配, 则认证和授权操作均转交更底层的模块来处理 (如modules.c文件中所定义的); 而如果指定了一个userID和/或rule,则执行常规的密码和访问检查, 如果检查失败则反馈一个"Authentication Required"的信息。

因此,当一个userID出现在不止一个模块的数据库中时,或者, 当一个有效的Require指令同时作用于不止一个模块时, 只有第一个模块会执行检查, 而无论AuthAuthoritative如何设置,再也没有后续操作了。

此指令常用于和一个使用数据库的模块的连接,如mod_auth_dbm, mod_auth_msqlmod_auth_anon, 这些模块提供了对海量用户进行认证检查的支持。 但是,少数(网管)相关的访问可以直达拥有良好保护的AuthUserFile的较底层。

缺省情况下,控制不会被转交给底层, 一个未知的userID或rule会导致一个 "Authentication Required" 的应答。 不设置此指令,可以使系统较安全,并符合NCSA的规范。

安全

由于.htaccess文件可能隐含地允许用户执行认证控制的向下转交, 对此必须慎重考虑,是否的确如你所愿。 通常,保护一个单一的.htpasswd文件比保护比如mSQL的数据库要容易一些。 必须确保AuthUserFileAuthGroupFile存放在在WEB服务器所在路径以外的目录中, 千万不要放在它们所保护的目录中, 否则,AuthUserFileAuthGroupFile可能会被客户端下载。

top

AuthGroupFile 指令

说明:指令设定一个文本文件的名称,这个文本文件包含用来执行用户认证的用户组列表
语法:AuthGroupFile 文件路径
上下文:目录, .htaccess
覆盖项:AuthConfig
状态:Base
模块:mod_auth

这个 AuthGroupFile设定一个文本文件的名称, 这个文本文件包含用来执行用户认证的用户组列表。 文件路径 是存放用户组列表文件的路径。 如果不是绝对路径,则是相对ServerRoot设置的服务器基础目录的相对路径。

这个用户组列表文件每行含一个用户组名称,后跟一个冒号, 再跟该组用户的用户名称,用户名间以空格分隔。

示例:

mygroup: bob joe anne

注意搜索很大的文本文件是非常缺乏效率的; AuthDBMGroupFile提供了更出色的性能。

安全

确保AuthGroupFile文件存放在WEB服务器所在路径以外的目录中, 千万不要放在它所保护的目录中, 否则,AuthGroupFile文件可能会被客户端下载。

top

AuthUserFile 指令

说明:设定一个文本文件名称,这个文件含有认证用的用户名、密码列表。
语法:AuthUserFile 文件路径
上下文:目录, .htaccess
覆盖项:AuthConfig
状态:Base
模块:mod_auth

AuthUserFile指令设定一个文本文件的名称, 其中含有用于认证的用户名、密码列表。 文件路径 是存放用户文件的路径。 如果不是绝对路径 (也就是说, 如果不是以斜杠开始的 ), 则是相对 ServerRoot设置的服务器基础目录的相对路径。

用户文件的每一行包含一个用户名,后跟一个冒号,再跟一个加密过的密码。 如果文件中含有相同用户名, mod_auth 模块会用排列在最前面的那行定义来验证该用户的密码。

在二进制文件安装包中附带的,或src/support中的命令htpasswd是用来维护密码文件的。 参阅帮助文件可以获得更详细的说明。简单说:

以一个初始帐户 username 创建一个密码文件 Filename 。 它会提示输入密码:

htpasswd -c Filename username

增加或修改密码文件 Filename 中的帐号 username2

htpasswd Filename username2

注意搜索很大的文本文件是 非常缺乏效率的;应该使用 AuthDBMUserFile来替代它。

安全

确保AuthGroupFile文件存放在WEB服务器所在路径以外的目录中, 千万不要放在它所保护的目录中, 否则,AuthGroupFile文件可能会被客户端下载。

现有的语种:  en  |  ja 

 


项目维护者: kajaa [本文译者: flytosea * ]

项目说明 | 项目进度 | 项目讨论区 | Apache手册中文版