设为首页
加入收藏
联系站长
首页 | 资讯荟萃 | 在线教程 | 精彩图库 | 友人博客 | 友人手机 | 友人生活 | 友人小说 | 美食频道 | 
您现在的位置: 您现在的位置: 友人网 >> 在线教程 >> 电脑应用 >> 系统应用 >> Linux & Unix >> 其它 >> 正文 用户登录 新用户注册
用Apache与Mysql整合实现基本的身份认证          【字体:
用Apache与Mysql整合实现基本的身份认证
作者:otto    文章来源:Linuxeden    点击数:    更新时间:2005-12-27
Apache来实现基本的用户身份认证有很多种方式,比如最常见的txt文本和DBM格式,但在负载很重的server上-这些都不是理想的方法,文本的形式是基于平面的,性能很差而且也不安全;DBM好些但在千或万级用户时还是力不从心,于是用database做后台存储则是很好的方法-比平面搜索更有效而且安全,用户口令以DES加密形式存储在数据库的表中。
这种实现要归功于Apache本身出色的模块化结构--以及开放的DSO方式,可以使开发人员完成大量的第三方模块,并扩充Apache的功能。我在本文中只写了用Mysql做后台存储--此外还可用Postgresql,Oracle等来完成,原理一样-都是用各自的模块。
让我们开始吧--先去modules.apache.org(这可是Apache第三方模块的大本营)找到mod_auth_mysql--会有两个我们要用DSO那个-事实上直接去ftp://ftp.kcilink.com/pub/下一个mod_auth_mysql.c.gz就行-好-把它解开是一个mod_auth_mysql.c-好-我们用apxs来生成DSO模块(前题是你用DSO模式编译的Apache)--apxs -c -i -a -L/usr/local/lib/mysql -lmysqlclient >-lm mod_auth_mysql.c即可--这里注意一定要这么写---L/usr/local/lib/mysql是mysql的客户库位置,我假定mysql是用的缺省安装)---如果不加在起动Apache时会报错-无法装载此模块。
好-看看httpd.conf中应该有LoadModule mysql_auth_module libexec/mod_auth_mysql.so和AddModule mod_auth_mysql.c这两句了,重起Apache也不应该有问题。
然后我们进入mysql,mysql>create database auth;
mysql>use auth;
mysql> create table mysql_auth (
-> user_name char(20) not null,
-> user_passwd char(25),
-> groups char(25),
-> primary key (username) );
注意字段名一定是user_name和user_passwd这个。再插入几条记录:
mysql> insert into mysql_auth values('xingfei2',encrypt("abcde"),'xingfei');
Query OK, 1 row affected (0.00 sec)
mysql> insert into mysql_auth values('xingfei',encrypt("abcde"),'xingfei');
Query OK, 1 row affected (0.00 sec)
这里abcde是口令-用encrypt函数来进行加密,用的是DES算法-这是和unix的password等同的算法-而不是mysql本身加密的password()函数。
最后在要保护的目录里建一个.htaccess(别忘了把AllowOverride all打开)内容如下:
authname "xingfei"
authtype basic
AuthMySQLHost localhost ---mysql主机名
authmysqluser root ---mysql用户
authmysqlpassword abc ---mysql用户的口令
AuthMySQLDB auth ---用户所用的库-也就是我们建的库
AuthMySQLUserTable mysql_auth ---所用的表
AuthMySQLGroupField groups ---用户组的字段名
require group xingfei
require user xingfei
可以把用户都放在一个组里-只要是这个组里的用户即可通过认证。-也可require单个或多个用户。

文章残缺不齐,我要再从从互联网上搜索与此相关的内容
声明:本站部分文章收集于网络,仅供个人学习之用,绝无任何商业目的;其版权归原作者及出版社所有。如果您觉得我们侵犯了您的版权,请来信告诉我们,我们会尽快删除其内容! 本站原创文章版权归本站所有,除特别申明外,大家可以自由转载,但原作者和来自本站的链接必须保留!
文章录入:linuxfans    责任编辑:myosmaster 
  • 上一篇文章: 几种Linux的企业应用及解决方案

  • 下一篇文章: 静态及动态添加系统调用
  • 发表评论】【告诉好友】【打印此文】【关闭窗口
  • Linux有效服务综合列表

  • Linux操作系统的高级电源管理

  • Linux操作系统下设置基本网络…

  • 关掉linux文本模式下的滴滴声

  • 高性能Linux集群管理监控之道

  • Linux初始化系统V的Init过程

  • Linux系统可卸载内核模块完全…

  • 使用TSIG和DNSSEC加固域名服…

  • Linux日志文件系统及性能分析

  • Linux服务器上的备份和恢复

  • (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)