<-
Apache > HTTP 服务器 > 文档 > 版本 2.4 > 模块

Apache 模块 mod_auth_digest

可用语言:  en  |  fr  |  ko 

描述使用 MD5 Digest 身份验证进行用户身份验证
状态扩展
模块标识符auth_digest_module
源文件mod_auth_digest.c

摘要

此模块实现 HTTP Digest 身份验证 (RFC2617),并提供 mod_auth_basic 的替代方案,其中密码不会以明文形式传输。但是,这并不会带来比基本身份验证显著的安全性优势。另一方面,与基本身份验证相比,服务器上的密码存储安全性要低得多。因此,使用基本身份验证并使用 mod_ssl 对整个连接进行加密是一个更好的选择。

Support Apache!

主题

指令

错误修复清单

另请参阅

top

使用 Digest 身份验证

要使用 MD5 Digest 身份验证,请按照以下示例配置要保护的位置

示例

<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>

AuthDigestDomain 应列出将受此配置保护的位置。

AuthUserFile 指令中引用的密码文件可以使用 htdigest 工具创建和管理。

注意

Digest 身份验证旨在比基本身份验证更安全,但不再满足该设计目标。中间人攻击者可以轻松地强制浏览器降级为基本身份验证。即使是被动窃听者也可以使用当今的图形硬件暴力破解密码,因为 Digest 身份验证使用的哈希算法速度太快。另一个问题是服务器上的密码存储不安全。被盗的 htdigest 文件的内容可以直接用于 Digest 身份验证。因此,强烈建议使用 mod_ssl 对整个连接进行加密。

mod_auth_digest 仅在 APR 支持共享内存的平台上才能正常工作。

top

AuthDigestAlgorithm 指令

描述选择用于在 Digest 身份验证中计算质询和响应哈希的算法
语法AuthDigestAlgorithm MD5|MD5-sess
默认值AuthDigestAlgorithm MD5
上下文directory, .htaccess
覆盖AuthConfig
状态扩展
模块mod_auth_digest

AuthDigestAlgorithm 指令选择用于计算质询和响应哈希的算法。

MD5-sess 尚未正确实现。
top

AuthDigestDomain 指令

描述对于 Digest 身份验证位于同一保护空间中的 URI
语法AuthDigestDomain URI [URI] ...
上下文directory, .htaccess
覆盖AuthConfig
状态扩展
模块mod_auth_digest

AuthDigestDomain 指令允许您指定一个或多个 URI,这些 URI 位于同一保护空间中(即使用相同的域和用户名/密码信息)。指定的 URI 是前缀;客户端将假设所有“位于”这些 URI 之下的 URI 也受相同的用户名/密码保护。URI 可以是绝对 URI(即包括方案、主机、端口等)或相对 URI。

此指令应该始终指定并包含此空间的根 URI(集)。省略这样做会导致客户端为发送到此服务器的每个请求发送 Authorization 标头。

指定的 URI 也可以指向不同的服务器,在这种情况下,客户端(理解这一点)将在多个服务器之间共享用户名/密码信息,而无需每次都提示用户。

top

AuthDigestNonceLifetime 指令

描述服务器 nonce 有效期多长
语法AuthDigestNonceLifetime seconds
默认值AuthDigestNonceLifetime 300
上下文directory, .htaccess
覆盖AuthConfig
状态扩展
模块mod_auth_digest

AuthDigestNonceLifetime 指令控制服务器 nonce 有效期多长。当客户端使用已过期的 nonce 联系服务器时,服务器将返回带有 stale=true 的 401。如果 seconds 大于 0,则它指定 nonce 有效的时间量;这可能永远不应该设置为小于 10 秒。如果 seconds 小于 0,则 nonce 永远不会过期。

top

AuthDigestProvider 指令

描述为该位置设置身份验证提供程序
语法AuthDigestProvider provider-name [provider-name] ...
默认值AuthDigestProvider file
上下文directory, .htaccess
覆盖AuthConfig
状态扩展
模块mod_auth_digest

AuthDigestProvider 指令设置哪个提供程序用于对该位置的用户进行身份验证。默认的 file 提供程序由 mod_authn_file 模块实现。确保服务器中存在所选的提供程序模块。

有关提供程序,请参阅 mod_authn_dbmmod_authn_filemod_authn_dbdmod_authn_socache

top

AuthDigestQop 指令

描述确定在 Digest 身份验证中使用的保护质量
语法AuthDigestQop none|auth|auth-int [auth|auth-int]
默认值AuthDigestQop auth
上下文directory, .htaccess
覆盖AuthConfig
状态扩展
模块mod_auth_digest

AuthDigestQop 指令确定要使用的保护质量auth 仅执行身份验证(用户名/密码);auth-int 是身份验证加完整性检查(还会计算和检查实体的 MD5 哈希);none 将导致模块使用旧的 RFC-2069 Digest 算法(不包括完整性检查)。可以同时指定 authauth-int,在这种情况下,浏览器将选择使用哪一个。none 仅应在浏览器由于某种原因不喜欢它收到的质询时使用。

auth-int 尚未实现。
top

AuthDigestShmemSize 指令

描述为跟踪客户端分配的共享内存量
语法AuthDigestShmemSize size
默认值AuthDigestShmemSize 1000
上下文服务器配置
状态扩展
模块mod_auth_digest

AuthDigestShmemSize 指令定义了在服务器启动时分配的共享内存量,用于跟踪客户端。请注意,共享内存段不能设置为小于跟踪至少一个客户端所需的内存空间。此值取决于您的系统。如果您想找出确切的值,您可以简单地将 AuthDigestShmemSize 设置为 0 的值,并在尝试启动服务器后读取错误消息。

size 通常以字节表示,但您可以在数字后面加上 KM 来将您的值表示为 KB 或 MB。例如,以下指令都等效

AuthDigestShmemSize 1048576
AuthDigestShmemSize 1024K
AuthDigestShmemSize 1M

可用语言:  en  |  fr  |  ko 

top

评论

注意
这不是问答部分。此处放置的评论应指向有关改进文档或服务器的建议,如果它们已实施或被认为无效/偏离主题,可能会被我们的版主删除。有关如何管理 Apache HTTP Server 的问题应发送到我们的 IRC 频道 #httpd(在 Libera.chat 上)或发送到我们的 邮件列表