apache访问权限与验证

访问验证方式

  • Require all granted

允许所有请求访问资源

 

Require all denied

拒绝所有请求访问资源

 

Require env env-var [env-var] ...

  当指定环境变量设置时允许访问

 

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

允许指定的http请求方法访问资源

 

Require expr expression

当expression返回true时允许访问资源

 

Require user userid [userid] ...

允许指定的用户id访问资源

 

Require group group-name [group-name] ...

允许指定的组内的用户访问资源

 

Require valid-user

所有有效的用户可访问资源

 

Require ip 10 172.20 192.168.2

允许指定IP的客户端可访问资源

 

Require not group select

select组内的用户不可访问资源



以下[]中的表示可选项,实际中不能包含[]及其内容

 

一、指定目录的AuthType

<Directory /root/apache2>

AuthType Basic [None | Basic | Digest | Form]

</Directory>

 

二、设置AuthName,该信息将在客户端提醒框上显示

 

 

<Directory /root/apache2>

AuthType Basic [None | Basic | Digest | Form]

AuthName "Entry username and password"

</Directory>

 

三、指定AuthUserFile,指定用户名和密码存放的文件,密码文件的创建参考附录一

 

<Directory /root/apache2>

AuthType Basic [None | Basic | Digest | Form,后三种为不同的加密方式]

AuthName 请输入用户名和密码

AuthUserFile /usr/file/password

</Directory>

 

四、设置验证方式

 

<Directory /root/apache2>

AuthType Basic [None | Basic | Digest | Form]

AuthName "Entry username and password"

AuthUserFile /usr/file/password

Require user rote  [验证方式参考 http://roteg.iteye.com/blog/1465380]

</Directory>

 

附录一、创建用户信息文件

 

使用 htpasswd -c /root/apache2/auth/password rote 123

 

若AuthType使用的是digest,则是用htdigest创建密钥文件

 

创建文件passwd,并初始创建用户rote,密码123

 

验证、

 

客户端访问时会提示“Entry username and password”,输入rote/123才可访问资源



以下是一个简单的目录上下文配置

<Directory /root/apache2/doc>

AuthType Basic

AuthName Document

AuthUserFile /root/apache2/auth/passwd

Require user rote

</Directory>

 

上面是通过AuthUserType指定的用户信息文件,还可通过下面两种方式设置授权,效果同上

 

一、用户文件

 

<AuthnProviderAlias file pwdfile>   

AuthUserFile /root/apache2/auth/passwd

</AuthnProviderAlias>

 

<Directory /root/apache2/doc>

AuthType Basic

AuthName Document

AuthBasicProvider pwdfile

Require user rote

</Directory>

 

 

二、LDAP

 

<AuthnProviderAlias ldap ldap1>

AuthLDAPBindDN cn=rote,o=ctx

AuthLDAPBindPassword 123

AuthLDAPURL ldap://ldap.host/o=ctx

</AuthProviderAlias>

 

<AuthnProviderAlias ldap ldap2>

AuthLDAPBindDN cn=rote,o=dev

AuthLDAPBindPassword 123

AuthLDAPURL ldap://other.ldap.host/o=dev?cn

</AuthProviderAlias>

 

<Directory /webpages/secure>

AuthBasicProvider ldap1 ldap2

AuthType Basic

AuthName LDAP

Require valid-user

</Directory>



使用auth_dbm

  • 一、AuthDBMUserFile

<AuthnProviderAlias file ufile>

AuthUserFile /root/apache2/auth/userfile

</AuthnProviderAlias>


<Directory /root/apache2/htdoc>

AllowOverride None

AuthType Basic

AuthName "Entry username and password"

AuthBasicProvider ufile

     Require valid-user

</Directory>


假如有成百上千个用户在userfile文件中,那么使用这种方式效率极低,应使用

 

AuthDBMUserFile,使用步骤如下


1.1 使用htdbm生成dbm文件

./htdbm -bc /root/apache2/auth/userdbm dbm1 dbm1


上述命令将生成userdbm.dir和userdbm.pag文件,并创建用户dbm1,密码dbm1


1.2 配置AuthDBMUserFile

<Directory /root/apache2/htdoc>

AllowOverride None

AuthType Basic

AuthName "Entry username and password"

AuthBasicProvider dbm

AuthDBMUserFile /root/apache2/auth/userdbm

</Directory>


按照上述配置后,访问资源需提供userdbm中存在的用户。

 

二、AuthDBMGroupFile


<Directory /root/apache2/htdoc>

AllowOverride None

AuthType Basic

AuthName "Entry username and password"

AuthBasicProvider dbm

     AuthDBMUserFile /root/apache2/auth/userdbm

AuthGroupFile /root/apache2/auth/groupfile

Require group group1

</Directory>


上述指定只有组group1中的用户可访问资源,同样,如果groupfile中的数据很多,

 

效率也会很低,应使用AuthDBMGroupFile,使用如下

 

<Directory /root/apache2/htdoc>

AllowOverride None

AuthType Basic

     AuthName "Entry username and password"

     AuthBasicProvider dbm

     AuthDBMUserFile /root/apache2/auth/userdbm

AuthDBMGroupFile /root/apache2/auth/groupfile

     Require group group1

</Directory>

 

 

注:当使用AuthBasicProvider dbm时,原AuthUserFile即使指定了apache也不会加载使用其中的用户!










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值