apache认证、授权、访问控制
认证对象:某一个网站目录。
启用认证
1.即用AllowOverride
指令指定哪些指令在针对单个目录的配置文件中有效:AllowOverride AuthConfig
2.设置密码登录访问某个站点或者文件等
先介绍用密码来保护服务器上的目录。 首先需要建立一个密码文件。这个文件应该放在不能被网络访问的位置,以避免被下载。例如,如果/usr/local/apache/htdocs以外的空间不能被网络访问,那么可以考虑把密码文件放在/usr/local/apache/passwd目录中。 Apache在其安装目录的bin子目录中提供了htpasswd工具,用于建立密码文件,可以这样使用: htpasswd -c /usr/local/apache/passwd/passwords rbowen htpasswd会要你输入密码,并要求重新输入以进行确认: # htpasswd -c /usr/local/apache/passwd/passwords rbowen
New password: mypassword
Re-type new password: mypassword
Adding password for user rbowen 如果htpasswd不在搜索路径中,则必须使用完整路径,如:/usr/local/apache/bin/htpasswd 然后修改httpd.conf或.htaccess文件,指示服务器允许哪些用户访问并向用户索取密码。若要保护/usr/local/apache/htdocs/secret目录,则可以将下列指令写入/usr/local/apache/htdocs/secret/.htaccess或者httpd.conf的<Directory /usr/local/apache/apache/htdocs/secret>段。 AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
对应的实际测试效果:
</VirtualHost>
<VirtualHost *:80>
ServerName 127.0.0.1
DocumentRoot "E:/wamp/www/"
ErrorLog "E:/wamp/logs/www-error.log"
CustomLog "E:/wamp/logs/www-access.log" common
<Directory "E:/wamp/www/">
Options Indexes FollowSymLinks
#AllowOverride all
AllowOverride AuthConfig
AuthType Basic
AuthName "test authconfig"
AuthUserFile E:/wamp/bin/apache/Apache2.2.21/htpasswd/passwords
Require user rbowen
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
3允许多个人访问:
如果想允许多人访问,那么就必须建立一个组文件以确定组中的用户。其格式很简单,可以用你喜欢的编辑器建立,例如:
GroupName: rbowen dpitts sungo rshersey
它只是每组一行的一个用空格分隔的组成员列表。
向已有的密码文件中增加一个用户,可以输入:
htpasswd /usr/local/apache/passwd/passwords dpitts
程序的提示和上面的一样,但是它会追加到已有的文件中,而不是建一个新文件(参数 -c
可以强制建立新的密码文件)。
现在,需要将.htaccess
文件修改成这样:
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/passwords
AuthGroupFile /usr/local/apache/passwd/groups
Require group GroupName
现在,GroupName
组中的成员都在password
文件中有一个相应的记录,从而允许他们输入正确的密码进行访问。
除了建立组文件,还有另一种途径允许多人访问,就是使用如下指令:
Require valid-user
使用上述指令,而不是 Require user rbowen
,可以允许密码文件中的所有用户使用正确的密码进行访问。通过为每个组建立一个密码文件,这里甚至允许列举各个组,其优点是Apache只需要检查一个文件(而不是两个),其缺点是,必须维护众多密码文件,而且要确保AuthUserFile
指定了一个正确的密码文件
ps:上述如果人多的话,认证需要耗费时间。
4其他:
Allow
和Deny
指令可以允许或拒绝来自特定主机名或主机地址的访问,同时,Order
指令告诉Apache处理这两个指令的顺序,以改变过滤器。
这些指令的用法:
Allow from address
address可以是一个IP地址(或者IP地址的一部分),也可以是一个完整的域名(或者域名的一部分),还可以同时指定多个IP地址和域名。
比如,要拒绝不受欢迎的兜售垃圾的站点:
Deny from 205.252.46.165
这样,这个指令所管辖的区域将拒绝所有来自该地址的访问。除了指定IP地址,也可以指定域名,如:
Deny from host.example.com
另外,还可以指定地址或域名的一部分来阻止一个群体:
Deny from 192.101.205
Deny from cyberthugs.com moreidiots.com
Deny from ke
Order
可以组合Deny
和Allow
指令,以保证在允许一个群体访问的同时,对其中的一些又加以限制:
Order deny,allow
Deny from all
Allow from dev.example.com
只列出Allow
指令不会得到你想要的结果,因为它在允许指定对象访问的同时并不禁止其他未列出的对象的访问。所以上例使用的方法是:首先拒绝任何人,然后允许来自特定主机的访问。
apache认证、授权、访问控制的更多相关文章
- 源码分析shiro认证授权流程
1. shiro介绍 Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户“登录”: 授权 - 访问控制: 密码加密 ...
- Spring Cloud 微服务中搭建 OAuth2.0 认证授权服务
在使用 Spring Cloud 体系来构建微服务的过程中,用户请求是通过网关(ZUUL 或 Spring APIGateway)以 HTTP 协议来传输信息,API 网关将自己注册为 Eureka ...
- springboot+spring security +oauth2.0 demo搭建(password模式)(认证授权端与资源服务端分离的形式)
项目security_simple(认证授权项目) 1.新建springboot项目 这儿选择springboot版本我选择的是2.0.6 点击finish后完成项目的创建 2.引入maven依赖 ...
- Yii2 restful api创建,认证授权以及速率控制
Yii2 restful api创建,认证授权以及速率控制 下面是对restful从创建到速率控制的一个详细流程介绍,里面的步骤以及截图尽可能详细,熟悉restful的盆友可能觉得过于繁琐,新手不妨耐 ...
- SpringBoot整合shiro实现用户的认证授权
* 项目环境搭建 * 配置ShiroConfig,用于shiro的基本配置和注入自定义规则 * 实现自定义的realm,继承AuthorizingRealm * 编写测试controller和页面 基 ...
- Spring Cloud Alibaba 实战(十一) - Spring Cloud认证授权
欢迎关注全是干货的技术公众号:JavaEdge 本文主要内容: 如何实现用户认证与授权? 实现的三种方案,全部是通过画图的方式讲解.以及三种方案的对比 最后根据方案改造Gateway和扩展Feign ...
- shiro框架学习-2-springboot整合shiro及Shiro认证授权流程
1. 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- 8.k8s.认证与访问控制
#K8S认证与访问控制(RBAC) 用户证书创建 #k8s认证 #主要认证 方式 http token.https证书 k8s不提供用户管理,API Server把客户端证书的CN字段作为User,把 ...
- 认证授权:IdentityServer4
前言 上一篇文章<学习OIDC>介绍了OIDC协议,本篇开始我们就来具体来学习OIDC的具体实现IdentityServer4 学习. 一.IdentityServer4 是什么? Ide ...
- Spring security OAuth2.0认证授权学习第三天(认证流程)
本来之前打算把第三天写基于Session认证授权的,但是后来视屏看完后感觉意义不大,而且内容简单,就不单独写成文章了; 简单说一下吧,就是通过Servlet的SessionApi 通过实现拦截器的前置 ...
随机推荐
- 【转】赞一下huicpc035
以下转自:http://hi.baidu.com/fpkelejggfbfimd/item/99421eaefa93a814a9cfb722 本来以为HNU的huicpc035和我一样退役了,后来听说 ...
- .Net 中HashTable,HashMap 和 Dictionary<key,value> 和List<T>和DataTable的比较
参考资料 http://www.cnblogs.com/MichaelYin/archive/2011/02/14/1954724.html http://zhidao.baidu.com/link? ...
- 10. 星际争霸之php设计模式--原型模式
题记==============================================================================本php设计模式专辑来源于博客(jymo ...
- 安卓与PC网络对接实现视频实时播放
研究安卓网络通信一段时间了, 由于最近公司催的比较紧, 硬着头皮弄出来了. 现在手机客户端终于能够连接流媒体服务器实时播放前端的视频流了. 其实通信方面主要还是命令包的解析, 以及分包组包. 比如要 ...
- AppCan接入微信并且进行文字分享
AppCan接入微信并且进行文字分享 接入指引 实现简单的文字分享功能 接入指引 详情请参见:http://newdocx.appcan.cn/index.html?templateId=412 实现 ...
- dataURI V.S. CSS Sprites 移动端
英文原文:http://www.mobify.com/blog/css-sprites-vs-data-uris-which-is-faster-on-mobile/ 中文翻译:http://www. ...
- redis windows下的环境搭建
先说下安装吧!感觉这东西跟mongodb差不多,安装和布置挺简单,下载地址:https://github.com/dmajkic/redis/downloads 下载下来的包里有两个,一个是32位的, ...
- MVC(二)
所谓EF延迟加载,就是使用Lamabda或Linq查询数据时,EF并不会将数据直接查询出来,而是在用到的这个查询结果的时候才会加载到内存中.延迟加载也可以理解成 按需加载,顾名思义,就是按照所需的数据 ...
- VS2010中qDebug输出乱码的问题
1.开发环境:安装Qt5.3.2(离线安装包安装):VS版本为:2010 SP1Rel:源代码默认保存格式为GB2312. 2.输出乱码的代码 #include <QtCore/QCoreApp ...
- CSS3响应式布局之弹性盒子
CSS3弹性盒模型可以轻松的创建自适应浏览器流动窗口的布局或自适应字体大小的布局.同时该盒子决定了一个盒子在其他盒子的分布方式,及如何处理可用的空间. 自己写了一个弹性盒子的demo: 主要HTML代 ...