基于应用程序级的Apache认证配置(普通认证篇)
来源:互联网 发布:淘宝网男士睡衣 编辑:程序博客网 时间:2024/04/29 22:30
基于应用程序级的Apache认证配置(普通认证篇)
作者:雨水 日期:2007-03-23 转载请保留此处
Apache服务器提供了两种用户认证方式,即普通认证和摘要认证。在网上有很多讲如何配置Apache普通认证的文章,但是它们几乎都是类似告诉你如何去保护某个文件夹的文件之类的配置方法。
如果你的需求是对所有的HTTP请求都认证,并且针对认证后的请求做出相应的处理,这又该如何配置呢?这里也跟我这里题目有关。首先我要解释一下它。这个题目为什么叫基于应用程序级呢?也就是说这里的配置不是为那些将Apache用于网页浏览的Web服务器配置,而是为需要在Apache上做应用程序开发,处理自定义业务的用户。要对所有的HTTP请求自己再加自定义的处理,因此就必须编写了自己的Apache模块,并定义了处理方法,这里叫hello-bdb。
首先,配置httpd.conf文件。你需要在conf目录下的httpd.conf文件中加入(位置不重要,但必须放在最顶层)如下配置:
<Location />
SetHandler hello-bdb
AuthName "Server Infomation"
AuthType Basic
AuthUserFile D:/Apache22/conf/htpasswd.pwd
require valid-user
</Location>
针对上述配置的解释:
(1)SetHandler 是增加的自定义处理,也就是自己编写的处理模块;
(2)AuthName 后面是服务器信息,你可以替换成任意字符,最好用能反应你服务器信息的字符串,这里个信息会显示在输入用户和密码的对话框中,见后面的图;
(3)AuthType 后面是认证类型,Basic表示普通认证。摘要认证相应的指令是Digest;
(4)AuthUserFile 后面是你存放用户名和密码的文件,后面会介绍如何生成该文件;
(5)require valid-user表示配置文件中的合法用户都可以访问。
其次,生成用户名和密码文件。这时要使用Apache提供的htpasswd工具。方法如下:
htpasswd -bc ../conf/htpasswd.pwd user1 1234
上述命令生成htpasswd.pwd文件,并向其中加入用户user1,密码为1234。
如果成功了,系统会提示如下。
Automatically using MD5 format.
Adding password for user user1
最后,运行。在浏览器中输入http://localhost。会弹出图示如下的对话框:
分别输入用户名user1和密码1234,然后系统通过认证后,进行自定义的处理,然后会将处理结果返回到浏览器。
大家一看就感觉上面的普通认证安全性不高,并且用户名和密码在传输过程中也只进行了Base64编码,很容易被窃取。摘要认证的安全性要比普通认证高,缺点就是不是所有的浏览器都支持它。
在另外的文章中,我会介绍摘要认证的配置方法。如有疑问欢迎评论或来邮。
- 基于应用程序级的Apache认证配置(普通认证篇)
- 基于应用程序级的Apache认证配置(摘要认证篇)
- Apache应用的认证配置(Linux环境)
- apache 口令认证的基本配置
- 配置apache服务器的用户认证
- Apache的认证和授权配置
- 配置apache服务器的用户认证
- 配置apache服务器的用户认证
- Apache认证配置之一Basic认证(一)
- RHEL的Apache配置(基于ip&端口&域名的虚拟主机和认证)
- apache的认证设置
- apache的用户认证
- apache下配置认证用户
- Lamp:Apache用户认证+配置
- Java Web应用程序认证 -- 基于JDK7的License开发应用以及认证
- UNIX SSH证书认证来取代普通的密码认证
- Apache认证
- 基于OAuth2的认证(译)
- WMI列出磁盘配额
- C语言中字符数组和字符串指针分析
- C#的多线程机制
- 日语初学者会话100句
- C#程序可将文本文件藏于位图中,也可导出
- 基于应用程序级的Apache认证配置(普通认证篇)
- 如何学习linux编程
- C#创建和调用DLL
- 捕捉DataGrid的双击事件
- 网络编程的服务器模型
- Object中的clone为什么是protected,而不是public?
- 基于应用程序级的Apache认证配置(摘要认证篇)
- C#实现SMTP服务器,使用TCP命令实现,功能比较完善
- 开博的第一篇文章