Apache HTTP服务器 2.0版本
说明: | 使用文本文件来执行使用者认证 |
---|---|
状态: | Base |
模块名: | auth_module |
源文件: | mod_auth.c |
兼容性: | 仅在2.1以前的版本中有效 |
此模块提供了对HTTP基本认证的支持,它在明文的密码和组文件中查找用户,从而对访问进行限制。
mod_auth_dbm
提供了类似的但更具伸缩性的功能;
mod_auth_digest
则提供了对HTTP摘要认证的支持。
说明: | 指定是否将认证和授权操作交由更底层的模块来处理 |
---|---|
语法: | 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_msql
和mod_auth_anon
,
这些模块提供了对海量用户进行认证检查的支持。
但是,少数(网管)相关的访问可以直达拥有良好保护的AuthUserFile
的较底层。
缺省情况下,控制不会被转交给底层, 一个未知的userID或rule会导致一个 "Authentication Required" 的应答。 不设置此指令,可以使系统较安全,并符合NCSA的规范。
由于.htaccess文件可能隐含地允许用户执行认证控制的向下转交,
对此必须慎重考虑,是否的确如你所愿。
通常,保护一个单一的.htpasswd文件比保护比如mSQL的数据库要容易一些。
必须确保AuthUserFile
和AuthGroupFile
存放在在WEB服务器所在路径以外的目录中,
千万不要放在它们所保护的目录中,
否则,AuthUserFile
和AuthGroupFile
可能会被客户端下载。
说明: | 指令设定一个文本文件的名称,这个文本文件包含用来执行用户认证的用户组列表 |
---|---|
语法: | AuthGroupFile 文件路径 |
上下文: | 目录, .htaccess |
覆盖项: | AuthConfig |
状态: | Base |
模块: | mod_auth |
这个 AuthGroupFile
设定一个文本文件的名称,
这个文本文件包含用来执行用户认证的用户组列表。
文件路径 是存放用户组列表文件的路径。
如果不是绝对路径,则是相对ServerRoot
设置的服务器基础目录的相对路径。
这个用户组列表文件每行含一个用户组名称,后跟一个冒号, 再跟该组用户的用户名称,用户名间以空格分隔。
mygroup: bob joe anne
注意搜索很大的文本文件是非常缺乏效率的;
AuthDBMGroupFile
提供了更出色的性能。
确保AuthGroupFile
文件存放在WEB服务器所在路径以外的目录中,
千万不要放在它所保护的目录中,
否则,AuthGroupFile
文件可能会被客户端下载。
说明: | 设定一个文本文件名称,这个文件含有认证用的用户名、密码列表。 |
---|---|
语法: | 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
文件可能会被客户端下载。