Apache HTTP 服务器版本 2.4

| 描述 | 核心身份验证 |
|---|---|
| 状态 | 基础 |
| 模块标识符 | authn_core_module |
| 源文件 | mod_authn_core.c |
| 兼容性 | 在 Apache 2.3 及更高版本中可用 |
此模块提供核心身份验证功能,以允许或拒绝访问网站的某些部分。 mod_authn_core 提供所有身份验证提供程序共有的指令。
可以在配置文件中创建扩展身份验证提供程序,并为其分配别名。然后,可以通过指令 AuthBasicProvider 或 AuthDigestProvider 以与基本身份验证提供程序相同的方式引用别名提供程序。除了创建和别名扩展提供程序的能力之外,它还允许同一个扩展身份验证提供程序被多个位置引用。
此示例检查两个不同的文本文件中的密码。
# 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 主机提供服务
<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>
| 描述 | 用于 HTTP 身份验证的授权域 |
|---|---|
| 语法 | AuthName auth-domain |
| 上下文 | 目录,.htaccess |
| 覆盖 | AuthConfig |
| 状态 | 基础 |
| 模块 | mod_authn_core |
此指令设置目录的授权域的名称。此域将提供给客户端,以便用户知道要发送哪个用户名和密码。 AuthName 接受一个参数;如果域名称包含空格,则必须用引号括起来。它必须与 AuthType 和 Require 指令以及 AuthUserFile 和 AuthGroupFile 等指令一起使用才能正常工作。
例如
AuthName "Top Secret"
为 AuthName 提供的字符串将显示在大多数浏览器提供的密码对话框中。
从 2.4.55 开始,可以在指令内部使用 表达式语法 以动态生成名称。
例如
AuthName "%{HTTP_HOST}"
| 描述 | 将代表基本身份验证提供程序扩展的一组指令括起来,并由指定的别名引用 |
|---|---|
| 语法 | <AuthnProviderAlias baseProvider Alias> ... </AuthnProviderAlias> |
| 上下文 | 服务器配置 |
| 状态 | 基础 |
| 模块 | mod_authn_core |
<AuthnProviderAlias> 和 </AuthnProviderAlias> 用于将一组身份验证指令括起来,这些指令可以通过别名使用指令 AuthBasicProvider 或 AuthDigestProvider 来引用。
| 描述 | 用户身份验证类型 |
|---|---|
| 语法 | AuthType None|Basic|Digest|Form |
| 上下文 | 目录,.htaccess |
| 覆盖 | AuthConfig |
| 状态 | 基础 |
| 模块 | mod_authn_core |
此指令选择目录的用户身份验证类型。可用的身份验证类型是 None、Basic(由 mod_auth_basic 实现)、Digest(由 mod_auth_digest 实现)和 Form(由 mod_auth_form 实现)。
要实现身份验证,您还必须使用 AuthName 和 Require 指令。此外,服务器必须具有身份验证提供程序模块,例如 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 开始,可以在指令内部使用 表达式语法 以动态指定类型。