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

Apache 模块 mod_authn_core

可用语言:  en  |  fr 

描述核心身份验证
状态基础
模块标识符authn_core_module
源文件mod_authn_core.c
兼容性在 Apache 2.3 及更高版本中可用

摘要

此模块提供核心身份验证功能,以允许或拒绝访问网站的某些部分。 mod_authn_core 提供所有身份验证提供程序共有的指令。

Support Apache!

主题

指令

错误修复清单

另请参阅

top

创建身份验证提供程序别名

可以在配置文件中创建扩展身份验证提供程序,并为其分配别名。然后,可以通过指令 AuthBasicProviderAuthDigestProvider 以与基本身份验证提供程序相同的方式引用别名提供程序。除了创建和别名扩展提供程序的能力之外,它还允许同一个扩展身份验证提供程序被多个位置引用。

示例

此示例检查两个不同的文本文件中的密码。

检查多个文本密码文件

# Check here first
<AuthnProviderAlias file file1>
    AuthUserFile "/www/conf/passwords1"
</AuthnProviderAlias>

# Then check here
<AuthnProviderAlias file file2>   
    AuthUserFile "/www/conf/passwords2"
</AuthnProviderAlias>

<Directory "/var/web/pages/secure">
    AuthBasicProvider file1 file2
    
    AuthType Basic
    AuthName "Protected Area"
    Require valid-user
</Directory>

以下示例基于 ldap 提供程序创建两个不同的 ldap 身份验证提供程序别名。这允许单个经过身份验证的位置由多个 ldap 主机提供服务

检查多个 LDAP 服务器

<AuthnProviderAlias ldap ldap-alias1>
    AuthLDAPBindDN cn=youruser,o=ctx
    AuthLDAPBindPassword yourpassword
    AuthLDAPURL ldap://ldap.host/o=ctx
</AuthnProviderAlias>
<AuthnProviderAlias ldap ldap-other-alias>
    AuthLDAPBindDN cn=yourotheruser,o=dev
    AuthLDAPBindPassword yourotherpassword
    AuthLDAPURL ldap://other.ldap.host/o=dev?cn
</AuthnProviderAlias>

Alias "/secure" "/webpages/secure"
<Directory "/webpages/secure">
    AuthBasicProvider ldap-other-alias  ldap-alias1
    
    AuthType Basic
    AuthName "LDAP Protected Place"
    Require valid-user
    # Note that Require ldap-* would not work here, since the 
    # AuthnProviderAlias does not provide the config to authorization providers
    # that are implemented in the same module as the authentication provider.
</Directory>
top

AuthName 指令

描述用于 HTTP 身份验证的授权域
语法AuthName auth-domain
上下文目录,.htaccess
覆盖AuthConfig
状态基础
模块mod_authn_core

此指令设置目录的授权域的名称。此域将提供给客户端,以便用户知道要发送哪个用户名和密码。 AuthName 接受一个参数;如果域名称包含空格,则必须用引号括起来。它必须与 AuthTypeRequire 指令以及 AuthUserFileAuthGroupFile 等指令一起使用才能正常工作。

例如

AuthName "Top Secret"

AuthName 提供的字符串将显示在大多数浏览器提供的密码对话框中。

从 2.4.55 开始,可以在指令内部使用 表达式语法 以动态生成名称。

例如

AuthName "%{HTTP_HOST}"

另请参阅

top

<AuthnProviderAlias> 指令

描述将代表基本身份验证提供程序扩展的一组指令括起来,并由指定的别名引用
语法<AuthnProviderAlias baseProvider Alias> ... </AuthnProviderAlias>
上下文服务器配置
状态基础
模块mod_authn_core

<AuthnProviderAlias></AuthnProviderAlias> 用于将一组身份验证指令括起来,这些指令可以通过别名使用指令 AuthBasicProvider AuthDigestProvider 来引用。

此指令对授权没有影响,即使对于提供身份验证和授权的模块也是如此。
top

AuthType 指令

描述用户身份验证类型
语法AuthType None|Basic|Digest|Form
上下文目录,.htaccess
覆盖AuthConfig
状态基础
模块mod_authn_core

此指令选择目录的用户身份验证类型。可用的身份验证类型是 NoneBasic(由 mod_auth_basic 实现)、Digest(由 mod_auth_digest 实现)和 Form(由 mod_auth_form 实现)。

要实现身份验证,您还必须使用 AuthNameRequire 指令。此外,服务器必须具有身份验证提供程序模块,例如 mod_authn_file,以及授权模块,例如 mod_authz_user

身份验证类型 None 将禁用身份验证。启用身份验证后,它通常会由每个后续的 配置部分 继承,除非指定了不同的身份验证类型。如果不需要对经过身份验证的部分的子部分进行身份验证,则可以使用身份验证类型 None;在以下示例中,客户端可以访问 /www/docs/public 目录而无需进行身份验证

<Directory "/www/docs">
    AuthType Basic
    AuthName Documents
    AuthBasicProvider file
    AuthUserFile "/usr/local/apache/passwd/passwords"
    Require valid-user
</Directory>

<Directory "/www/docs/public">
    AuthType None
    Require all granted
</Directory>

从 2.4.55 开始,可以在指令内部使用 表达式语法 以动态指定类型。

禁用身份验证时,请注意,即使服务器实际上不强制要求对每个资源进行身份验证,已经针对服务器文档树的另一部分进行身份验证的客户端通常会继续在每个请求中发送身份验证 HTTP 标头或 cookie。

另请参阅

可用语言:  en  |  fr 

top

评论

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