在 Apache Web Server 上实现用户认证
A:目前 Web 服务器有很多种,其中 Apache Web Server 以其稳定性高、速度快、功能丰富、完全免费等特点获得了广大技术人员的青睐,截止2001年,全球的 WWW 服务器中大约有超过 400 万台使用的是 Apache Web Server,占总数的 60%,成为 Internet 上最流行的 Web Server。在将企业信息进行 Web 发布时,经常遇到有一部分敏感信息,需要对浏览用户进行用户限制及认证。这当然可以通过编程来实现用户的认证,但采用Apache本身的功能即可实现这一目的,而无需对程序进行任何修改。具体有以下两种方法。
域名或IP地址的限制
用这种方法可限制某些区域的用户对网站(或某些目录)的访问。
配置文件中有若干由〈Directory 目录名〉 和 〈/Directory〉把一组指令包装起来的指令段,这些指令的作用将只应用到所指明的目录及其子目录上。
allow 这个指令影响能够存取某特定目录的主机,主机可以是下列之一:
all
允许所有的主机存取。
部份)领域名称
允许名称为此字串或以此字串结束的主机存取。
完整的 IP 位址
允许该 IP 位址的主机存取。
部份的 IP 位址
某个 IP 位址第一到第三个位元组,作为子网路限制之用。
基于用户和密码的访问
通常用在要求更严格的地方。用户需要密码和口令才能访问。这就叫用户认证。实现用户认证需要两个步骤,先要建立一个用户密码文件,存放用户名和密码。再就是把限制访问的文档保护起来。
(1)建立用户密码文件
apache 提供了htpasswd程序用于建立用户密码文件。这个程序通常位于prefix/bin/下,htpasswd 的使用方法如下:
htpasswd -c yourpath/yourfilename username
yourpath和yourfilename是存放用户密码文件的路径名和文件名.注意这个文件不要放到被web可以读取的地方。也不要放到被保护的文档中。比如可以放在/usr/local/apache/etc下, —c 是指建立这个文件。
htpasswd -c /usr/local/apache/etc/users wxp 指在该目录下建立users文件并加入用户wxp,然后在根据提示输入密码。在加第二个用户时就不用-c了。建好后的文件就象系统的passwd文件,前面是用户名,后面是MD5算法加密后的密文。
wxp 6A4CDr0325
Liming dDK4sJS1S3
(2)建立.htaccess文件
在你要保护的文档目录下建立这个文件。就像这样
AuthName “LoginIn“ // 这个是被保护页面的名字
AuthUserFile /usr/local/apache/etc/users //用户密码文件
AuthAuthoritative on
require valid-user
AuthType Basic //使用的认证协议
这里AuthName , 表示了被保护页面的名字。如果不同的页面使用了不同的AuthName。则用户在进入这些不同Ahtuname的页面是需重输用户名和密码。AhtuType 有两种:Basic 和Digest。这里用了Basic,如果用Digest,只要把AuthType Basic换成AuthType Digest AuthUserFile 换成AuthDigestFile,然后用APACHE提供的htDigest程序生成密码文件。格式是htdigest -c /usr/local/apache/etc/filename digest username
filename 是密码文件名.username 是要加的用户名.digest提供基于md5的认证方法。
目前只有IE5可以使用Digest提供的MD5认证.但MD5提供更强的安全。
AuthUserFile 也可以是AuthGroupFile 这样可以指定一个组的用户。如AuthGroupFile /usr/local/apache/etc/admingroup.这个文件可用任何编辑器建立。格式是这样admin:wxp xpw other:Liming Ximing.
AuthAuthoritative on 可以不给不在用户文件里的用户提供验证密码的机会。具有更高的安全性。
--- require 这句是指那些用户可以被认证。比如require user wxp ,那么只有wxp这个用户可以登入.这样就可以以一个用户密码文件实现不同级别的访问。
(3)限制访问级别
你可以在不同的目录下实现不同的访问级别。如可以让部分用户可以GET,部分可以POST. 这是在httpd.conf文件中配置。在要限制的目录的句子中插入:
require vaild-user
这里GET POST PUT可以依需要修改。并在该目录中的下面加上AllowOverride AuthConfig ,这样APACHE就会去该目录下找.htaccess 文件。
现在对网站访问时,将会进行用户和口令的认证。
|
|
|