Apache用户认证命令解析

用户认证模块所用相关命令知识扩展

要使用用户认证功能,你需要确保mod_authn_coremod_authz_core模块在器在安装时就编译进了服务器内或者在apache主配置文件内加载上述2模块之一。

[root@localhost ~]# grep "mod_authn_core" /usr/local/apache/conf/httpd.conf
LoadModule authn_core_module modules/mod_authn_core.so
[root@localhost ~]# grep "mod_authz_core" /usr/local/apache/conf/httpd.conf
LoadModule authz_core_module modules/mod_authz_core.so

用户认证代码块举例

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

语法:AllowOverride ALL|None|drective-type

默认值为None

drective-type

  • AuthConfig
# 配置用户认证时指定
# 表示允许使用认证相关指令如AuthName、AuthType、AuthUserFile
AllowOverride AuthConfig
  • FileInfo
# 表示允许使用如下控制命令:
# 文件类型(如ErrorDocument)、文件元数据(如CookieDomain)、
# rewrite模块相关(RewriteCond)、alias模块(Redirect)、
# actions模块(Action)
AllowOverride FileInfo
  • Indexes
# 表示允许使用如下控制目录索引相关的命令:
# 如AddDescription, AddIcon, AddIconByEncoding,
# AddIconByType, DefaultIcon, DirectoryIndex, 
# FancyIndexing, HeaderName, IndexIgnore等
AllowOverride Indexes
  • Limit
# 表示允许使用如下控制主机访问相关的命令:
# 如Allow、Deny和Order
AllowOverride Limit
  • Options
# 表示允许使用如下的诸多特殊目录结构相关的命令:
# 如Options和XBitHack命令内的参数
# 例如Indexes、MultiViews就是Options命令内的参数
AllowOverride Options=Indexes,MultiViews

另外上述参数可以组合使用如:

AllowOverride AuthConfig Indexes
AuthType

语法 AuthType None | Basic | Digest | Form

前提开启AuthConfig配置AllowOverride AuthConfig

为了使用该命令,你必须同时使用AuthNameRequire命令,此外服务器还必须有一个“认证提供者”模块例如mod_authn_file和一个认证模块例如:mod_authz_user。

开启认证时如果想让某个目录内的一个目录不进行认证,就需要另外指定AuthType None来关闭认证,默认设置认证的目录下的目录会继承上级目录的设置。

  • 指定密码文件
<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>
Require

Require命令测试了一个认证用户是否是AuthUserFile所指定的认证文件内的用户!

  1. 所有用户无需认证:

Require all granted

  1. 所有用户认证无效:

Require all denied

  1. 只有在某个所给的环境变量被设置才允许访问:

Require env env-var

4 只有指定的HTTP方法才能访问:

Require method http-method [http-method]...

5 只有指定表达式计算为真时才能访问:

Require expr expression

6 只有指定用户才能访问:

# Require user userid [userid]...
Require user admin root

7 只有指定组内用户才能访问:

# Require group group-name [group-name]...
Require group admin

8 所有有效用户都能访问:

Require valid-user

9 指定ip网段才能访问:

# 指定的10.172.20.0/24和192.168.2.0/24网段
Require ip 10.172.20 192.168.2

整理自Apache HTTP 服务器 2.4 文档

转载于:https://my.oschina.net/LuCastiel/blog/1599807

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值