论文部分内容阅读
伴随着信息社会的到来,网络已经成为了人们生活中不可或缺的工具,越来越多地影响着人们的生活方式;不同种类的应用系统给人们带来便捷的同时,也带来了用户名和密码繁多不便记忆以及网络信息泄露等安全问题。传统的身份认证都是在应用系统端添加相应模块,使其具有认证授权功能,但是种类繁多的应用系统往往属于多个组织,这给用户名的管理带来很大的不便;而且再对应用系统进行相应功能升级时,也会使工作重复,降低效率。
为了解决以上问题,本文通过研究Apache的模块开发技术和SAML协议原理,在对Apache的模块体系架构,过滤器模块等机制进行深入了解之后,研究开发了一种嵌入在Apache服务器端的身份服务集成系统,提供了一种安全高效的Web服务平台。本文主要研究实现了基于SAML协议的单点登录系统,使得用户在访问同一信任域里的不同应用系统时,只需输入一次用户名和口令即可方便快捷的访问所有Web应用系统,解决了用户重复登录的繁琐和信息安全问题;由于网络服务认证方式有很多种,本文针对较常用的Basic,Form和kerberos身份认证方式,分别实现了基于SAML的身份认证服务集成系统,两者的主要区别在于用户信息的传递方式不同。基于Basic认证方式的系统主要进行了请求拦截、Cookie检测、重定向、断言解析及头部修改等操作;基于Form表单的认证方式,由于Apache自身并不携带此种认证方式,因此我们设计实现了基于Form的身份认证方式,解决了HTTP方式传输的安全问题,并且此系统还对生成的Cookie进行了RC4加密。面向kerberos认证方式的系统,在作为反向代理服务器时,会调用相应接口函数连接KDC,生成token,并修改请求头部,将token添加进去,引导用户重新进行请求验证。
总的来说,这是对Web应用系统完全透明的身份认证集成服务,在不修改Web应用系统的前提下,实现了在Apache服务器端进行身份认证服务的单点登录系统,解决了早期Web应用系统的单点登录实现问题,降低了实现难度,提升了开发效率,具有一定的可操作性。