认证对象:某一个网站目录。

启用认证

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认证、授权、访问控制的更多相关文章

  1. 源码分析shiro认证授权流程

    1. shiro介绍 Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户“登录”: 授权 - 访问控制: 密码加密 ...

  2. Spring Cloud 微服务中搭建 OAuth2.0 认证授权服务

    在使用 Spring Cloud 体系来构建微服务的过程中,用户请求是通过网关(ZUUL 或 Spring APIGateway)以 HTTP 协议来传输信息,API 网关将自己注册为 Eureka ...

  3. springboot+spring security +oauth2.0 demo搭建(password模式)(认证授权端与资源服务端分离的形式)

    项目security_simple(认证授权项目) 1.新建springboot项目 这儿选择springboot版本我选择的是2.0.6 点击finish后完成项目的创建 2.引入maven依赖  ...

  4. Yii2 restful api创建,认证授权以及速率控制

    Yii2 restful api创建,认证授权以及速率控制 下面是对restful从创建到速率控制的一个详细流程介绍,里面的步骤以及截图尽可能详细,熟悉restful的盆友可能觉得过于繁琐,新手不妨耐 ...

  5. SpringBoot整合shiro实现用户的认证授权

    * 项目环境搭建 * 配置ShiroConfig,用于shiro的基本配置和注入自定义规则 * 实现自定义的realm,继承AuthorizingRealm * 编写测试controller和页面 基 ...

  6. Spring Cloud Alibaba 实战(十一) - Spring Cloud认证授权

    欢迎关注全是干货的技术公众号:JavaEdge 本文主要内容: 如何实现用户认证与授权? 实现的三种方案,全部是通过画图的方式讲解.以及三种方案的对比 最后根据方案改造Gateway和扩展Feign ...

  7. shiro框架学习-2-springboot整合shiro及Shiro认证授权流程

    1. 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  8. 8.k8s.认证与访问控制

    #K8S认证与访问控制(RBAC) 用户证书创建 #k8s认证 #主要认证 方式 http token.https证书 k8s不提供用户管理,API Server把客户端证书的CN字段作为User,把 ...

  9. 认证授权:IdentityServer4

    前言 上一篇文章<学习OIDC>介绍了OIDC协议,本篇开始我们就来具体来学习OIDC的具体实现IdentityServer4 学习. 一.IdentityServer4 是什么? Ide ...

  10. Spring security OAuth2.0认证授权学习第三天(认证流程)

    本来之前打算把第三天写基于Session认证授权的,但是后来视屏看完后感觉意义不大,而且内容简单,就不单独写成文章了; 简单说一下吧,就是通过Servlet的SessionApi 通过实现拦截器的前置 ...

随机推荐

  1. PHP 5.4 on CentOS/RHEL 6.4 and 5.9 via Yum

    PHP 5.4 on CentOS/RHEL 6.4 and 5.9 via Yum PHP 5.4.16 has been released on PHP.net on 6th June 2013, ...

  2. MFC实现 自适应操作系统的CListCtrl控件

    新建对话框应用程序,删除自动生成的控件后,拖拽一个CListCtrl控件,绑定变量名为:m_listctrl.在对话框初始化成员函数OnInitDialog()中键入以下代码即可实现自适应系统的CLi ...

  3. paper 94:视觉领域博客资源1之中国部分

    这是收录的图像视觉领域的博客资源的第一部分,包含:中国内地.香港.台湾 这些名人大家一般都熟悉,本文仅收录了包含较多资料的个人博客,并且有不少更新,还有些名人由于分享的paper.code或者数据集不 ...

  4. js typeof

    var message = "some thing"; alert(typeof message); // string alert(typeof 95); // number a ...

  5. 查看oracle被锁的表

    SELECT /*+ rule*/ a.sid, b.owner, object_name, object_type FROM v$lock a, all_objects b WHERE TYPE = ...

  6. HTML5新增元素、标签总结

    总是遇到h5新标签的笔试题目,就查阅了资料来总结一下: 1.form相关: (1)form属性:在HTML5中表单元素可放在表单之外,通过给该元素添加form属性来指向目标表单(form属性值设为目标 ...

  7. struts_表单得到数据

    在大家学习struts表达式语言的时候经常会遇到,从表单的提交上面得到数据, 而如何将表单的数据得到呢? 下面就介绍其中的一种方式: :以类的方式进行注入我们以login为例子 首先可以在struts ...

  8. CSS 高级语法 ---- 继承和选择器的分组

    1. 选择器的分组 —————————————————————————   可以对选择器进行分组,被分组的选择器享用共同的声明.   h1,h2,h3,h4,h5,h6 { color: green; ...

  9. 四大开源协议比较:BSD、Apache、GPL、LGPL (转)

    转自:http://www.lupaworld.com/portal.php?mod=view&aid=205552&page=all 本文参考文献:http://www.fsf.or ...

  10. 智能设备逆向工程之外部Flash读取与分析篇

    智能设备逆向工程之外部Flash读取与分析篇 唐朝实验室 · 2015/10/19 11:19 author: rayxcp 0x00 前言 目前智能家居设备的种类很多,本文内容以某智能豆浆机为例完成 ...