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 开始,可以在指令内部使用 表达式语法 以动态指定类型。