云联天下首页 |  登陆 |  注册 |  密码找回 |  关于我们 | 加入收藏 
首页技术资料系统/服务器→Linux+Apache实现用户身份认证 【字号: 】 【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色)

Linux+Apache实现用户身份认证

网址来源:http://www.kehui.net发布时间: 2002-01-21 18:12:12
一、序言



现在很多网站对用户的访问权限进行了严格的限制,用户在访问某些资源时需要给出“用户名/口令”来确认自己的身份。目前,使用最多的身份认证方法是将用户名、口令存放在一个数据库中,当用户要访问某些受限制的资源时,要在某一个页面中输入用户名和口令,程序将用户输入的用户名和口令与数据库存放的“用户名/口令"相比较,如果输入正确,则正常使用资源,否则,资源访问被拒绝。但是,这种身份认证方式有两个很大的问题,一方面只要用户有一次身份认证成功,就可以记录下受限资源的链接地址,在下一次访问时只需输入该地址,而无需通过身份认证过程就可访问受限资源;另一方面用户可以在受限制的资源的超级链接处点右键,选择“属性",就可以查看到受限制资源的链接地址,直接访问该地址,使身份认证不能达到预期的效果。



Apache可以很好地解决上述问题。Apache是建立WWW网站的软件,可运行于Linux、 Unix和Windows操作系统下。下面就以Linux为例介绍Apache是如何完成用户身份认证功能的。



二、基本原理



Apache实现身份认证的基本原理是:当系统管理员启动身份认证功能后,可以在要限制的目录中添加一个默认名“.htaccess"的文件。当用户访问该路径下的资源时,系统就会弹出一个对话框,要求用户输入“用户名/口令"。也就是说,它的身份认证功能不是人为由程序控制,而是由系统直接控制的。这样就避免了用户记录需要认证的资源的超级链接,不会下次直接访问资源。



身份认证的方法有多种,其中包括Apache中预编译好的mod—auth模块和Apache自带的但未编译好的模块,如:mod—auth—dbm模块、mod—auth—db模块、mod—auth—msql模块。另外还有一些第三方开发的模块,如:MySQL数据库中使用的mod—auth—MySQL模块,他们都可以对一组用户或某个用户进行限制。



三、具体实现



下面主要介绍mod—auth模块和mod—auth—MySQL模块的使用。但无论采取何种认证方式,都要先对Apache做一些设置:在配置文件access.conf中作如下的设置: <br>  AccessFileName . htaccess <br>  AllOerride All



(一) mod—auth模块完成身份认证功能,它主要是把允许访问资源的组名、用户名、用户口令以文本文件的方式存放,具体方法是:



1.编辑认证用的组文件:主要用于存放可以访问受限制的资源的组名以及其中的用户,用Vi编辑组文件.htgroup如下 <br>  ptisi : lkch



存放在 /sur/local/apache/secrets/.htgroup路径下,其中ptisi是组名,lkch是组中的用户名。



2.建立用户文件:主要用于存放某一组中的用户名和口令 <br>  htpasswd -c /usr/local/apache/secrets/.htpasswd lkch



注:htpasswd是Apache提供用于实现认证功能的程序,-c表示产生新的.htpasswd文件,如果存在同名旧文件,则覆盖旧文件。该程序将询问口令,键入“hello"然后重新确认口令。



3.在要限制的资源的目录内编辑 .htaccess文件



  AuthName ″This is a test″ <br>  AuthType Basic <br>  AuthUserFile /usr/local/apache/secrets/.htpasswd <br>  AuthGroupFile /usr/local/apache/secrets/.htgroup <br>  repuire group ptisi



注:参数require group 指定哪些组的用户可以访问认证资源,这样,当再次访问需要认证的资源存在的目录时,系统就会弹出对话框,要求输入“用户名/口令"。



(二)mod—auth—mysql模块完成身份认证功能,由于Apache + PHP + MySQL已经被许多网站的建设者当作是建设中小型网络数据库的黄金组合,因而mod—auth—mysql的功能也就显得尤其强大。它主要是把允许访问资源的组名、用户名、用户口令以文本文件的方式存放。



1.建立认证用的数据库 <br>  prompt〉mysqladmin create http—auth



2.建立认证用的表,并插入一行数据 <br>  prompt〉mysql http—auth <br>  mysql〉create table mysql—auth ( <br>  -〉sername char(25) NOT NULL, <br>  -〉passwd char(25), <br>  -〉groups char(25), <br>  -〉primary key (usrname) <br>  -〉); <br>  mysql〉insert mysql—auth (username,passwd,groups) <br>  -〉values (″lkch″,PASSWD(″hello″),″ptisi″);



3.配置Apache <br>在http.cont中加入 Auth—MySQL—Info [host] [username][Password]



其中username和password是MySQL数据库用户的用户名和口令。



4.创建 .htaccess文件 <br>  AuthName ″This is a test!″ <br>  AuthType Basic <br>  Auth—MySQL on <br>  Auth—MySQL—Db http—auth <br>  Auth—MySQL—Password—Table mysql—auth <br>  Auth—MySQL—Group—Table mysql—auth <br>  Auth—MySQL—Username—Field username <br>  Auth—MySQL—Password—Field passwd <br>  Auth—MySQL—Group—Field groups <br>  Auth—MySQL—Encryption—Types Plaintext,Crypt—DES,MySQL



最后这句话表示认证时口令的形式,分别表示不加密、DES加密方式和MySQL的Password()加密。



使用这种认证方法的最大优点是PHP提供了大量对MySQL数据库进行操作的函数,可以方便地进行远程管理。

kehui 

相关新闻
v 在Linux防火墙上编译Apache+PHP4+Mysql 2002-01-21 18:12:12
v 基于Apache 配置文件的Web页面访问权限控制 2002-01-21 18:12:12
v Apache服务器配置全攻略(三) 2002-01-21 18:12:12
v Apache服务器配置全攻略(五) 2002-01-21 18:12:12
v 超级服务器apache+mysql+php+ssl之完全安装攻略 2002-01-21 18:12:12
v Apache管理好帮手—Apache Launcher 2002-01-21 18:12:12
v Apache重负荷服务器应如何优化 2002-01-21 18:12:12
v Apache服务器配置全攻略(一) 2002-01-21 18:12:12
v 在Apache上跑ASP(Windows版) 2002-01-21 18:12:12
v PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置 2002-01-21 18:12:12
  最新新闻
智慧家居
智慧家居颠覆传统智能家居
智慧云谷让智能家居变成有智慧的
智慧云谷引领智慧家居新生活
科技改变生活 智慧云谷智慧家居系
智慧家居领航者,智慧云谷助你玩
智能家居如何赢得市场美誉度?
智慧云谷智慧家居:创业者有无限
WiFi智能家居你还在用?这样的智
互联网+助推智能家居产业
智慧云谷为您打造真正的智能家居
智能家居产业需要的不是单品,而
新家如何选择开关?智慧云谷iWis
智能传感器-世界首款“智”为你的
智慧云谷开关智能安防智能空气质
智能开关品牌,如何选择智能开关
秋季干燥,智慧家居温湿度传感器
传感器助力智慧家居 感知爱家
iWiscloud智能触摸开关缔造家居装

  最新帖子
 ※室内空气污染的危害及  [sensor]
 ※超声波风速传感器在生  [sensor]
 ※这么冷清  [gabc111]
 ※手机APP操作有问题  [ssy11407]
 ※智慧云谷智慧家居将在  [cici]
 ※上传下载  [cici]
 ※下载智慧家居  [apple2008]
 ※秋季干燥,智慧家居温  [apple2008]
 ※智慧家居紧扣热点 安全  [apple2008]
 ※办公大楼如何智慧化管  [apple2008]
 ※智慧云谷工业自控的优  [apple2008]
 ※传感器助力智慧家居 感  [apple2008]
 ※智能开关品牌,如何选  [apple2008]
 ※智慧云谷开关智能安防  [apple2008]
 ※没有专业人员,如何安  [apple2008]
 ※烟台智慧云谷董事长任  [apple2008]
 ※互联网+助推智能家居产  [apple2008]
 ※WiFi智能家居你还在用  [apple2008]
 ※智慧云谷智慧家居:创  [apple2008]
 ※智能家居如何赢得市场  [apple2008]
钯碳回收 硝酸银回收 银浆回收 银焊条回收 回收银浆 氯化钯回收 氯化钯回收 氧化钯回收 回收硝酸钯 钯水回收价格 海绵钯回收 钯炭回收价格 回收镀金板 深圳钯碳回收 镇江氯化钯回收 杭州钯浆回收 银浆回收多少钱 回收钯碳公司 硝酸银的价格 那里有回收金 氯化钯回收价格 江苏擦银布回收 硝酸银价格 德州钯粉回收 银铜回收 回收钯粉 回收铂碳催化剂 佛山钯碳回收 金盐回收价格 海绵钯回收 钯碳高价回收 钯回收价格 钯炭回收