扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
为了弥补安全性的缺点,可以将AuthType设置为 Digest,这样就会使用Digest鉴别方式进行认证,此时认证口令文件要使用AuthDigestFile来规定,而口令文件必须使用另一个加密程序htdigest 产生和维护,而hdigest的使用方法和htpasswd相同。在Digest认证方式下,浏览器不会直接发送口令的明文信息,而是在传输口令之前先使用MD5算法进行编码处理。注意,不是所有类型的浏览器都支持Digest类型的鉴别方式的,只有在浏览器和服务器同时都支持Digest方式时,这种认证才可行。
AuthType为Basic时,是使用系统加密方法,一般是使用DES算法,但在FreeBSD下有可能是使用的MD5算法,但除非管理员希望在不同系统间共享口令文件,否则不必考虑他们使用的到底是何种算法。需要与其他系统兼容时,可以重新安装DES算法。但在系统使用时重新安装加密算法,就无法重建整个口令文件,因此不推荐在系统使用过程中更换认证算法,而应该在系统安装时就确定使用的认证算法。
为了减少用户数量较多时服务器的处理开销,就必须使用数据库技术,这是因为数据库使用了索引技术,对数据的查找就比较快速。Unix下最简单的数据库为使用系统提供的DB(或DBM)库进行创建数据库文件的技术,Apache 服务器中使用模块mod_auth_db.so对这种数据库口令文件提供支持。htpasswd产生的文本文件在有几百个用户时就会花费相当大的服务器开销,而DBM格式的认证方式可以高效的支持上万个用户。
BSD风格的Unix系统通常使用DB库,而其他Unix通常使用DBM库。因此其他Unix使用的命令和设置中应该为dbm而非db。
为了支持这种认证方式,应载入mod_auth_db.so模块,使用Ports Collection安装的Apache服务器缺省情况就支持这个模块而不需要改动。可以让Apache同时支持多种认证方式,而不会发生冲突。
此外,配置文件中的认证方式也需要改变,首先要创建数据库文件,这会在通过使用dbmmanage命令第一次增加用户时创建。
# dbmmanage /usr/local/etc/users adduser user1 pass123
这个命令将创建/usr/local/etc/usersdbm数据库文件,并使用pass123为口令在数据库中增加用户user1。然后就可以针对现有的数据库文件,增加、删除和查看用户信息了:
# dbmmanage /usr/local/etc/httpd/usersdbm delete user2# dbmmanage /usr/local/etc/httpd/usersdbm view
在拥有了数据库文件和用户数据之后,就可以使用这种认证方式了:
AuthName DBMTestAuthType BasicAuthDBUserFile /usr/local/etc/usersdbmrequire valid-user
可以使用dbmmanage命令也可以用来管理组,例如将user1加入group1组,但必须添加用户的同时进行设置,需要使用dhmmanage的另一个参数:
# dbmmanage /usr/local/etc/users adduser user1 pass123 group1
这样就能使用AuthDBGroupFile和require group1进行认证管理。
除了使用DBM之外,Apache还可以配置成与匿名ftp认证方式类似的方式,或者使用mSql、Oracle 等SQL数据库进行认证,或者使用Kerboros、LDAP服务器进行认证,这些认证方式更为强大,能使Web 认证与其他网络服务的认证方式相统一。但是这些额外的认证方式必须使用相应的认证模块进行支持。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者