Apache模块 mod_auth_digest
说明 | 使用MD5摘要认证(更安全,但是只有最新的浏览器才支持) |
---|---|
状态 | 实验(X) |
模块名 | auth_digest_module |
源文件 | mod_auth_digest.c |
概述
这个模块实现了HTTP摘要认证。由于尚未进行过广泛的测试,因此标记为试验模块。
AuthDigestProvider代替普通的"AuthType Basic
"和AuthBasicProvider
,再添加一个AuthDigestDomain
指令包含至少是需要保护的区域的根URI。
可以使用htdigest
工具来创建和添加(纯文本)用户列表文件。
示例:
<Location /private/>
AuthType Digest
AuthName "private area"
AuthDigestDomain /private/ http://mirror.my.dom/private2/
AuthDigestProvider file
AuthUserFile /web/auth/.digest_pw
Require valid-user
</Location>
注意
摘要认证比基本认证更安全,但是直到2004年9月,只有下列最新版本的主流浏览器支持它:Amaya, Konqueror, MS Internet Explorer 6(使用查询字符串时会失败,参见"配合 MS Internet Explorer 6 工作"), Mozilla, Netscape 7, Opera, Safari 。而lynx不支持摘要认证。因为摘要认证尚未得到绝大多数浏览器的支持,你应当只将它应用在你可以控制用户浏览器版本的场合。
BrowserMatch指令以了解有条件的设置环境变量的更多细节。
说明
选择在摘要认证中用于计算请求和应答的散列值的算法
语法
AuthDigestAlgorithm MD5|MD5-sess
默认值
AuthDigestAlgorithm MD5
作用域
directory, .htaccess
覆盖项
AuthConfig
状态
实验(X)
模块
mod_auth_digest
AuthDigestAlgorithm MD5|MD5-sess
AuthDigestAlgorithm MD5
AuthDigestAlgorithm
指令选择在摘要认证中用于计算请求和应答的散列值的算法。
MD5-sess
算法当前尚未实现。
说明
在同一保护区域中需要进行摘要认证的URI
语法
AuthDigestDomain URI [URI] ...
作用域
directory, .htaccess
覆盖项
AuthConfig
状态
实验(X)
模块
mod_auth_digest
AuthDigestDomain URI [URI] ...
AuthDigestDomain
指令用于指定一个或者多个在同一保护区域中需要进行摘要认证的URI(也就是使用相同的区域和用户名/密码信息)。这些被指定的URI只是前缀,也就是说客户端将假定所有位于该URI"之下"的URI亦受到相同用户名/密码的保护。这些被指定的URI可以是绝对URI(也就是包含完整的协议、主机、端口等)或者相对URI。
这个指令必须总是被指定为至少包含被保护页面的根URI。省略这个会导致客户端为每个请求都发送授权头,除了增加请求的字节大小外,如果AuthDigestNcCheck
被设为"On",还会影响服务器的性能。
这里指定的URI可以分别指向不同的服务器,在这种情况下客户端将会在这些服务器间共享用户名和密码信息,并且不会提醒用户。
说明
Enables or disables checking of the nonce-count sent by the
server
语法
AuthDigestNcCheck On|Off
默认值
AuthDigestNcCheck Off
作用域
server config
状态
实验(X)
模块
mod_auth_digest
目前尚未实现。
AuthDigestNcCheck On|Off
AuthDigestNcCheck Off
说明
Determines how the nonce is generated
语法
AuthDigestNonceFormat format
作用域
directory, .htaccess
覆盖项
AuthConfig
状态
实验(X)
模块
mod_auth_digest
目前尚未实现。
AuthDigestNonceFormat format
说明
服务器nonce(当前值)的有效秒数
语法
AuthDigestNonceLifetime seconds
默认值
AuthDigestNonceLifetime 300
作用域
directory, .htaccess
覆盖项
AuthConfig
状态
实验(X)
模块
mod_auth_digest
AuthDigestNonceLifetime seconds
AuthDigestNonceLifetime 300
AuthDigestNonceLifetime
指令控制服务器nonce(当前值)的有效秒数。当客户端连接服务器时使用了一个过期的nonce(当前值),服务器将返回一个带有"stale=true
"的401错误(要求重新认证)。如果seconds小于等于"0",那么nonce(当前值)将永远不会过期(强烈反对这么做)。一般这个值应当在60到600之间比较合理(最好不要小于10)。
说明
设置该区域的(摘要)认证支持者(Provider)
语法
AuthDigestProvider provider-name [provider-name] ...
默认值
AuthDigestProvider file
作用域
directory, .htaccess
覆盖项
AuthConfig
状态
实验(X)
模块
mod_auth_digest
AuthDigestProvider provider-name [provider-name] ...
AuthDigestProvider file
AuthDigestProvider
指令设置了该区域的(摘要)认证支持者(Provider)。默认的file
支持者由mod_authn_file
模块实现。必须确保所需的认证支持模块存在于服务器中(静态连接或DSO)。
能够提供认证支持者(Provider)的模块如下:mod_authn_dbm
和mod_authn_file
。
说明
指定摘要认证的保护质量
语法
AuthDigestQop none|auth|auth-int [auth|auth-int]
默认值
AuthDigestQop auth
作用域
directory, .htaccess
覆盖项
AuthConfig
状态
实验(X)
模块
mod_auth_digest
AuthDigestQop none|auth|auth-int [auth|auth-int]
AuthDigestQop auth
AuthDigestQop
指令用于指定使用那个级别的保护质量(quality-of-protection)。auth
将只进行认证(用户名/密码);auth-int
除了认证以外还进行完整性校验(实体的MD5值将被计算和检查);none
将使用旧的RFC-2069摘要算法(不包含完整性检查);auth
和auth-int
可以同时指定,在这种情况下,浏览器将会自己选择使用哪种一种。none
不推荐使用。
auth-int
目前尚未支持。
说明
为了跟踪客户端而分配的共享内存字节数
语法
AuthDigestShmemSize size
默认值
AuthDigestShmemSize 1000
作用域
server config
状态
实验(X)
模块
mod_auth_digest
AuthDigestShmemSize size
AuthDigestShmemSize 1000
AuthDigestShmemSize
指令指定了服务器启动时为了跟踪客户端而分配的共享内存字节数。注意,这个共享内存段不能设置为小于只跟踪一个客户端所需要的最小内存数量,这个最小数量取决于你的系统。如果你想知道这个最小值,你只要将AuthDigestShmemSize
设为"0
",然后读取重启Apache时返回的错误信息即可(Win和Linux都是每链接需要128字节)。
size通常按照字节计算,但是可以通过加上后缀"K
"或"M
"来按照KB或MB计算。比如,以下写法都是一样的:
AuthDigestShmemSize 1048576
AuthDigestShmemSize 1024K
AuthDigestShmemSize 1M