|
|
|
|
移动端

8.11.6 用户认证配置

《Linux服务器配置全程实录》第8章配置Web服务器,在本章中将介绍通过Apache配置HTTP、HTTPS、WebDAV、反向代理、安全配置、多种用户认证方式、虚拟主机,JSP环境搭建,LAMP环境搭建以及使用Lighttpd实现HTTP、HTTPS、虚拟主机等的相关内容。本节为大家介绍用户认证配置。

作者:张勤/杨章明来源:人民邮电出版社|2011-08-11 11:20

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


8.11.6  用户认证配置

Lighttpd使用mod_auth模块可实现对网站等进行用户名、密码保护的功能。不管使用哪种用户认证方式都需要加载mod_auth模块。将mod_auth行前的注释取消,如图8-62所示。

 
图8-62  mod_auth

Lighttpd提供基本身份验证和摘要式身份验证两种方式。基本身份验证和其他Web服务器一样都是采用明文形式传送密码,而摘要式身份验证则使用Hash算法传送密码。基本身份验证的认证用户来源可以是普通文本文件、htpasswd工具生成的密码文件等。

(1)使用普通文本文件方式时,只需建立一个文本文件,将认证用户信息采用"用户名:密码"一行一个的方式,将所有用户信息输入。下面的例子中在/etc/lighttpd/users目录建立一个名为.plain_users的用户保存文件,并增加了名为tonyzhang、tomyang、davidxu的3个用户,密码都是123。

  1. echo "tonyzhang:123" > /etc/lighttpd/users/.plain_users  
  2. echo "tomyang:123" >> /etc/lighttpd/users/.plain_users  
  3. echo "davidxu:123" >> /etc/lighttpd/users/.plain_users  

(2)在/etc/lighttpd/lighttpd.conf中增加以下内容。

  1. auth.backend = "plain"                                              ①  
  2. auth.backend.plain.userfile = "/etc/lighttpd/users/.plain_users"    ②  
  3. auth.require = ("/" => (                                                ③  
  4.      "method"  => "basic",                                              ④  
  5.      "realm"   => "AdminUsers",                                         ⑤  
  6.      "require" => "user=tonyzhang|user=tomyang"                     ⑥  
  7. ))    

其中各行含义如下。

①:指定用户名及密码保存文件是普通文本文件。

②:指定用户名及密码保存文件的存放路径及文件名。

③:指定需要进行用户认证的目录,这里的/是一个相对路径,所代表的网站的根目录(也就是访问该网站都需要进行身份认证)。如果该网站下某一个目录需要身份验证时,可在此参数指定路径,如网站下admin目录需要进行用户认证,就应该设置为/test。

④:指定使用基本身份认证。

⑤:指定用户认证界面提示信息。

⑥:指定只有tonyzhang、tomyang可以通过认证,如果希望用户名及密码保存文件中所有定义的用户均可以通过认证时可使用"require" => "valid-user"。

如果用户认证来源是一个htpasswd工具生成的密码时,只需将①改为auth.backend=  "htpasswd",后将②改为auth.backend.htpasswd.userfile即可。

在Lighttpd中可以对同一个网站下不同目录采用不同的认证方式。下面的例子表示该网站用户名及密码保存文件中所有定义的用户均可以通过认证,但可以访问该网站下tonyzhang目录的只有名为tonyzhang的用户,可访问tomyang目录的只有名为tomzhang的用户。

  1. auth.backend = "plain" 
  2. auth.backend.plain.userfile = "/etc/lighttpd/users/.plain_users" 
  3.  
  4. auth.require = ("/tonyzhang" => (           ①  
  5.     "method"  => "basic",     
  6.     "realm"   => "Private Direcotry",  
  7.     "require" => "user=tonyzhang"  
  8. ),  
  9. auth.require = ("/tomyang" => (         ②  
  10.     "method"  => "basic",     
  11.     "realm"   => "Private Direcotry",  
  12.     "require" => "user=tomyang"  
  13. ),  
  14.  
  15. auth.require = ("/" => (                ③  
  16.     "method"  => "basic",     
  17.     "realm"   => " AdminUsers ",  
  18.     "require" => "valid-user"  
  19. )  

在多个目录需要提供不同身份时,目录级别高的应该写在目录级别低的后面,上面的例子中如果把①的内容放到②、③的前面去,那②、③的配置将不生效。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

软件设计师考试全真模拟试题及解析

本书是按照全国计算机技术与软件专业技术资格(水平)考试《软件设计师考试大纲》的要求,参照《软件设计师教程》及近年来考试试题编写的,...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊