16.5.2 用户认证

16.5.2  用户认证

Apache的用户认证包括基本(Basic)认证和摘要(Digest)认证两种。摘要认证比基本认证更加安全,但是并非所有的浏览器都支持摘要认证,所以本节只针对基本认证进行介绍。基本认证方式其实相当简单,当Web浏览器请求经此认证模式保护的URL时,将会出现一个对话框,要求用户输入用户名和口令。用户输入后,传给Web服务器,Web服务器验证它的正确性。如果正确,则返回页面;否则将返回401错误。

要使用用户认证,首先要创建保存用户名和口令的认证口令文件。在Apache中提供了htpasswd命令用于创建和修改认证口令文件,该命令在<Apache安装目录>/bin目录下。关于该命令完整的选项和参数说明可以通过直接运行htpasswd获取。

要在/usr/local/apache2/conf目录下创建一个名为users的认证口令文件,并在口令文件中添加一个名为sam的用户,命令如下所示。

 

htpasswd -c /usr/local/apache2/conf/users sam

 

命令运行后会提示用户输入sam用户的口令并再次确认,运行结果如图16.30所示。

16.30  创建密码文件和用户访问

认证口令文件创建后,如果还要再向文件里添加一个名为ken的用户,可以执行如下命令:

 

htpasswd /usr/local/apache2/conf/users ken

 

/etc/shadow文件类似,认证口令文件中的每一行为一个用户记录,每条记录包含用户名和加密后的口令,如下所示。

 

用户名:加密后的口令

%注意:htpasswd命令没有提供删除用户的选项,如果要删除用户,直接通过文本编辑器打开认证口令文件把指定的用户删除即可。

创建完认证口令文件后,还要对配置文件进行修改,用户认证是在httpd.conf配置文件中的<Directory>段中进行设置,其主要配置参数如下:

1AuthName参数

AuthName参数用于设置受保护领域的名称,其参数格式如下所示。

 

AuthName 领域名称

 

领域名称没有特别限制,用户可以根据自己的喜欢进行设置。

2AuthType参数

AuthType参数用于设置认证的方式,其格式如下所示。

 

AuthType Basic/Digest

BasicDigest分别代表基本认证和摘要认证。

3AuthUserFile参数

AuthUserFile参数用于设置认证口令文件的位置,其格式如下所示。

 

AuthUserFile 文件名

4Require参数

Require参数用于指定哪些用户可以对目录进行访问其格式有下面两种。

 

Require user 用户名 [用户名] ...

Require valid-user

 

q      用户名认证口令文件中的用户可以指定一个或多个用户设置后只有指定的用户才能有权限进行访问。

q      valid-user:授权给认证口令文件中的所有用户。

现在,假设网站管理员希望对security_info目录做进一步的控制,配置该目录只有经过验证的sam用户能够访问,用户口令存放在users口令认证文件中。要实现这样的效果,需要把httpd.conf配置文件中security_info目录的配置信息替换为下面的内容:

 

#使用Diretory段设置/usr/local/apache2/htdocs/secure_info目录的属性

<Directory "/usr/local/apache2/htdocs/secure_info">

    Options Indexes FollowSymLinks

    AllowOverride None

#使用AuthType参数设置认证类型

    AuthType Basic

#使用AuthName参数设置

    AuthName "secure_info_auth"

#使用AuthUserFile参数设置认证口令文件的位置

    AuthUserFile /usr/local/apache2/conf/users

#使用require参数设置sam用户可以访问

    require user sam

#使用Order参数设置先执行拒绝规则,再执行允许规则

    Order deny,allow

#使用Deny参数设置拒绝所有客户端访问

    Deny from all

#使用Allow参数设置允许172.20.17.55客户端访问

    Allow from 172.20.17.55

</Directory>

 

重启Apache服务后使用浏览器访问http://demoserver/security_info进行测试,如           16.31所示。输入用户和口令,单击【确认】按钮,验证成功后将进入如图16.29所示的页面;否则将会要求重新输入。如果单击【取消】按钮将会返回如图16.32所示的错误页面。

 

16.31  弹出需要验证的窗口

 

 

 

16.32  错误页面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值