<-
Apache HTTP 服务器 2.4 > Apache模块mod_auth_basic

Apache模块mod_auth_basic

描述:基本HTTP验证
状态:基础
模块标识符:auth_basic_module
源文件:mod_auth_basic.c
兼容性:在Apache 2.1和更高版本中可用

摘要

该模块允许使用HTTP基本身份验证通过在给定提供程序中查找用户来限制访问。HTTP摘要验证由提供 mod_auth_digest。该模块通常应与至少一个认证模块(例如)mod_authn_file和一个授权模块(例如)组合mod_authz_user

支持Apache!

指令

错误修正清单

也可以看看

最佳

AuthBasic权威 指令

描述:设置是否将授权和身份验证传递给较低级别​​的模块
句法:AuthBasicAuthoritative On|Off
默认:AuthBasicAuthoritative On
内容:目录.htaccess
覆写:验证配置
状态:基础
模块:mod_auth_basic

通常,列出的每个授权模块AuthBasicProvider都会尝试验证用户,如果在任何提供程序中都找不到该用户,则将拒绝访问。如果没有用户ID或 与提供的用户ID匹配的规则,则将AuthBasicAuthoritative指令显式设置 为Off允许将身份验证和授权传递给其他基于非提供商的模块。仅当与未使用 伪指令配置的第三方模块结合使用时,才应该这样做。使用此类模块时,处理顺序在模块的源代码中确定,并且不可配置。mod_auth_basicAuthBasicProvider

最佳

AuthBasicFake 指令

描述:使用给定的用户名和密码表达式进行假基本认证
句法:AuthBasicFake off|username [password]
默认:none
内容:目录.htaccess
覆写:验证配置
状态:基础
模块:mod_auth_basic
兼容性:Apache HTTP Server 2.4.5及更高版本

指定的用户名和密码将合并到一个Authorization标头中,该标头将传递到Web服务器后面的服务器或服务。用户名和密码字段都使用表达式解析器进行解释,该解析器允许根据请求参数设置用户名和密码。

如果未指定密码,将使用默认值“ password”。要禁用URL空间的伪基本认证,请指定“ AuthBasicFake off”。

在此示例中,我们将固定的用户名和密码传递给后端服务器。

固定范例

<Location "/demo">
    AuthBasicFake demo demopass
</Location>

在此示例中,我们传递从客户端证书中提取的电子邮件地址,从而扩展了SSLOptions 指令中FakeBasicAuth选项的功能。与FakeBasicAuth选项一样,密码设置为固定字符串“ password”。

证书示例

<Location "/secure">
    AuthBasicFake "%{SSL_CLIENT_S_DN_Email}"
</Location>

扩展上面的示例,我们通过使用固定的密码对电子邮件地址进行哈希处理,然后将哈希传递给后端服务器来生成密码。这可用于进入不支持客户端证书的旧系统。

密码范例

<Location "/secure">
    AuthBasicFake "%{SSL_CLIENT_S_DN_Email}" "%{sha1:passphrase-%{SSL_CLIENT_S_DN_Email}}"
</Location>

排除示例

<Location "/public">
    AuthBasicFake off
</Location>
最佳

AuthBasicProvider 指令

描述:设置此位置的身份验证提供程序
句法:AuthBasicProvider provider-name [provider-name] ...
默认:AuthBasicProvider file
内容:目录.htaccess
覆写:验证配置
状态:基础
模块:mod_auth_basic

AuthBasicProvider指令设置使用哪个提供程序来认证此位置的用户。默认file提供程序由mod_authn_file模块实现。确保服务器中存在所选的提供程序模块。

<Location "/secure">
    AuthType basic
    AuthName "private area"
    AuthBasicProvider  dbm
    AuthDBMType        SDBM
    AuthDBMUserFile    "/www/etc/dbmpasswd"
    Require            valid-user
</Location>

按顺序查询提供程序,直到提供程序找到与所请求的用户名匹配的内容为止,此时唯一的提供程序将尝试检查密码。验证密码失败不会导致控制权传递给后续提供者。

供应商通过实施mod_authn_dbmmod_authn_filemod_authn_dbdmod_authnz_ldapmod_authn_socache

最佳

AuthBasicUseDigestAlgorithm 指令

描述:针对身份验证提供程序检查密码,就好像摘要身份验证已生效而不是基本身份验证一样。
句法:AuthBasicUseDigestAlgorithm MD5|Off
默认:AuthBasicUseDigestAlgorithm Off
内容:目录.htaccess
覆写:验证配置
状态:基础
模块:mod_auth_basic
兼容性:Apache HTTP Server 2.4.7和更高版本

通常,使用基本身份验证时,列出的提供程序 AuthBasicProvider 试图通过检查其数据存储中是否存在匹配的用户名和关联的密码来验证用户。存储的密码通常是加密的,但不一定要加密;每个提供商可以选择自己的密码存储方案。

使用AuthDigestProvider“摘要式身份验证”时,提供程序会执行类似的检查,以在其数据存储中找到匹配的用户名。但是,与“基本身份验证”情况不同,与每个存储的用户名关联的值必须是由用户名,领域名称和密码组成的加密字符串。(有关此加密字符串使用的格式的更多详细信息请参阅 RFC 2617,第3.2.2.2节。)

由于基本身份验证和摘要身份验证之间存储值的差异,从摘要身份验证转换为基本身份验证通常要求为所有用户分配新密码,因为他们现有的密码无法从强加给提供者的密码存储方案中恢复支持摘要式身份验证。

AuthBasicUseDigestAlgorithm指令设置为MD5将导致使用与摘要式身份验证相同的加密格式来检查用户的基本身份验证密码。首先,由用户名,领域名称和密码组成的字符串用MD5进行哈希处理;然后将用户名和此加密的字符串传递给列出的提供程序, AuthBasicProvider 就像 AuthType 设置为一样,Digest并且摘要身份验证已生效。

通过使用AuthBasicUseDigestAlgorithm 站点,可以从摘要身份验证切换为基本身份验证,而无需为用户分配新密码。

从基本身份验证切换到摘要身份验证而不分配新密码的逆过程通常是不可能的。仅当基本身份验证密码已以纯文本形式存储或采用可逆加密方案存储时,才有可能按照摘要身份验证密码存储方案来恢复它们并生成新的数据存储。
只有支持摘要式身份验证将可以在用户进行身份验证提供者AuthBasicUseDigestAlgorithm 设置为MD5。使用其他提供程序将导致错误响应,并且客户端将被拒绝访问。

可用语言: zh  |  fr  |  ja  |  KO 

最佳

注释

注意:
这不是“问答”部分。此处放置的评论应指向有关改进文档或服务器的建议,如果实施或被认为无效/偏离主题,我们的主持人可以将其删除。有关如何管理Apache HTTP Server的问题,应直接指向我们的IRC频道#httpd(位于Freenode上),或发送至我们的邮件列表
目前,此页面已禁用评论。