(通信与信息系统专业论文)基于isapi的身份鉴别系统.pdf_第1页
(通信与信息系统专业论文)基于isapi的身份鉴别系统.pdf_第2页
(通信与信息系统专业论文)基于isapi的身份鉴别系统.pdf_第3页
(通信与信息系统专业论文)基于isapi的身份鉴别系统.pdf_第4页
(通信与信息系统专业论文)基于isapi的身份鉴别系统.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(通信与信息系统专业论文)基于isapi的身份鉴别系统.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理l :人学硕士学位论文 摘要 伴随着电子商务化和办公信息化的迅猛发展,越来越多的公司已经建立了 大量具有特别用途的信息系统。这些应用系统在给人们的工作和生活带来方便 的同时也要求用必须记住不同应用系统的用户名、密码等信息,因此提出了单 点登录的概念。目前常用的w e b 单点登录协议是s a m l 协议。但是这种协议要 获得成功有一个关键的问题需要解决:如何使得已有的w e b 应用系统与单点登 录系统进行集成。w e b 应用系统所使用的身份鉴别协议通常是h 1 t r p 身份鉴别 协议,有时也会用到f o r m 身份鉴别方式。本文主要的解决就是运行在i i s 上的 w e b 应用系统与基于s a m l 协议的单点登录系统的集成问题。 针对上述提出的单点登录的集成问题,基于i s a p i 接口开发了面向i i s 服务 器的插件,该插件通过对h t y p 请求和响应头部及内容的处理实现了单点登录 系统与w e b 应用系统的集成。在这种服务器插件的作用下,w e b 运行平台的身 份鉴别机制仍然按其原有的方式运行和发挥作用。本文设计实现的服务器插件 分为两种:面向h t r p 身份鉴别协议的插件和面向f o r m 身份鉴别方式的插件。 面向h t r p 身份鉴别协议的插件只需对h t t p 请求和响应头部进行处理,所以 只用到了i s a p i 过滤器。此时作为服务器插件的i s a p i 过滤器主要完成的任务 有:拦截h t t p 请求头部并对请求头部进行相关处理( 如添加认证头部) ;拦截 h t r p 响应头部,并对响应头部进行相应处理( 如外部重定向、设置c o o k i e 信 息等) 。面向f o r m 身份鉴别方式的插件不但要对h 1 r r r p 请求和响应头部了进行 处理,还要对以p o s t 方式提交的b o d y 体进行修改,所以这个插件使用i s a p i 过滤器和通配符应用程序。i s a p i 过滤器仍然是拦截h t r p 请求和响应头部,对 其进行处理;通配符应用程序主要完成对b o d y 体的修改。通过对以上两种插件 的实现解决了运行在i i s 服务器上的w e b 应用系统与基于s a m l 协议的单点登 录系统的集成问题。 本文成功的解决了目前单点登录应用中最复杂、最难解决的问题:在不改 变原有应用系统的身份鉴别的前提下完成应用系统与单点登录的集成问题。 关键字:i i s ,i s a p i ,身份鉴别,单点登录,s a m l 武汉理工大学硕士学位论文 a b s t r a c t a l o n gw i t ht h er a p i dd e v e l o p m e n to fe c o m m e r c ea n do f f i c ei n f o r m a t i o n ,m o r e a n dm o r ec o m p a n i e sh a v ee s t a b l i s h e dal a r g en u m b e ro fs p e c i a lp u r p o s ei n f o r m a t i o n s y s t e m s t h e s ea p p l i c a t i o n st ot h ep e o p l ew o r k i n ga n dl i v i n gc o n v e n i e n tb u ta l s o r e q u i r em u s tr e m e m b e r d i f f e r e n t a p p l i c a t i o ns y s t e m s ,u s e rn a m e ,p a s s w o r d i n f o r m a t i o n ,a n dt h e r e f o r ep u tf o r w a r dt h ec o n c e p to fs i n g l es i g n - o n t h ec o m m o n l y u s e dw e bs i n g l es i g n o np r o t o c o li st h es a m l p r o t o c 0 1 b u tt h i sa g r e e m e n ti st ob e s u c c e s s f u lt h e r ei sac r i t i c a lp r o b l e mt ob es o l v e d :h o wt om a k ee x i s t i n gw e b a p p l i c a t i o n s w i t hs i n g l es i g n - o ns y s t e mi n t e g r a t i o n w e ba p p l i c a t i o n su s et h e a u t h e n t i c a t i o np r o t o c o l ,u s u a l l yh 订pa u t h e n t i c a t i o np r o t o c o l ,a n ds o m e t i m e sa l s o u s e sf o r m sa u t h e n t i c a t i o n i nt h i sp a p e r , t h es o l u t i o ni st or u no ni i sw e ba p p l i c a t i o n s a n ds y s t e mi n t e g r a t i o ni s s u e sb a s e do nt h es a m l p r o t o c o lo f as i n g l ep o i n to fl o g i n a b o v et h es i n g l es i g n o ni n t e g r a t i o ni s s u e s ,d e v e l o p e db a s e do nt h ei s a p i i n t e r f a c ef o ri i ss e r v e r p l u g i n s ,t h ep l u g - i np r o c e s s i n go fh 1 曙r e q u e s ta n dr e s p o n s e h e a d e r sa n dc o n t e n tt oa c h i e v eas i n g l es i g n - o ni n t e g r a t i o no fs y s t e m sa n dw e b a p p l i c a t i o n s s e r v e rp l u g i nd e s i g na n di m p l e m e n t a t i o no ft h i sa r t i c l ei sd i v i d e di n t o t w ot y p e s :f o rh ma u t h e n t i c a t i o n p r o t o c o lp l u g i n sa n dp l u g - i n s f o rf o r m a u t h e n t i c a t i o nm o d e j u s tf o rp r o c e s s i n gt h eh t t pr e q u e s ta n dr e s p o n s eh e a d e r sf o r t h eh ma u t h e n t i c a t i o np r o t o c o lp l u g i n s ,s oo n l yu s et h ei s a p if i l t e r i s a p if i l t e r a sas e r v e rp l u g c o m p l e t e dm i s s i o n :t oi n t e r c e p tt h eh t t pr e q u e s th e a d e r sa n d r e q u e s th e a d e r st ob e r e l a t e dt ot r e a t m e n t ( s u c ha sa d d i n gac e r t i f i e dh e a d ) ;t o i n t e r c e p tt h eh 1 t pr e s p o n s eh e a d e r sa n dr e s p o n s eh e a d e r sa n d d e a l tw i t ha c c o r d i n g l y ( s u c h a sa l le x t e r n a l r e d i r e c t ,s e tt h ec o o k i ei n f o r m a t i o n ,e t c ) f o rf o r m s a u t h e n t i c a t i o np l u g - i n sn o to n l yt ot h eh m r e q u e s ta n dr e s p o n s eh e a d e r sa r e p r o c e s s e d ,b u ta l s ot om o d i f yt h es u b m i t t e dp o s tb o d y , s ot h i sp l u g - i nt h eu s eo f i s a p if i l t e r sa n dw i l d c a r da p p l i c a t i o n t h ei s a p if i l t e ri ss t i l li n t e r c e p tt h eh 唧 r e q u e s ta n dr e s p o n s eh e a d e r st ob ep r o c e s s e d ;w i l d c a r da p p l i c a t i o nt oc o m p l e t et h e m o d i f i c a t i o no ft h eb o d y i m p l e m e n t a t i o no ft h ea b o v et w ok i n d so fp l u g - i n st os o l v e i l t h ew e ba p p l i c a t i o n sr u n n i n go nt h ei i ss e r v e ra n d t h es a m l p r o t o c o l _ b a s e ds i n g l e p o i n to fs i g n o ns y s t e mi n t e g r a t i o ni s s u e s s u c c e s s f u l l vs o l v et h em o s tc o m p l e x ,m o s t d i f f i c u l tp r o b l e mi nt h es i n g l e s i g n o na p p l i c a t i o n s :a u t h e n t i c a t i o nm e c h a n i s mt h a td o e sn o tc h a n g e t h eo r i g i n a lw e b a p p l i c a t i o ns y s t e mu n d e r t h ep r e m i s eo fw e ba p p l i c a t i o n sw i t hs i n g l es i g n - o ns y s t e m i n t e g r a t i o ni s s u e s k e yw o r d s :i i s ,i s a p i ,i d e n t i t ya u t h e n t i c a t i o n ,s i n g l es i g n 。o n ,s a m l i i i 武汉理j :大学硕十学位论文 1 1 研究背景 第一章绪论 伴随着电子商务化和企业信息化的迅猛发展,越来越多的公司和组织逐渐通 过网络开展其业务,为此他们建立了大量具有特别用途的信息系统,比如办公自 动化系统、财务系统等。但是网络在为企业提供便利的同时,也会带来愈来愈多 的安全问题,并且这些问题很有可能成为了计算机网络应用发展的一个瓶颈,因 此信息安全技术已经开始变得越来越重要了。要在复杂网络环境中保证不受侵 害,必须建立一套完整的安全体系。而身份认证机制就是安全体系中很重要的一 个环节。 传统的身份认证机制通常是使用用户名和密码或者使用数字证书进行认证, 采用分散的用户管理方式,即用户在现实世界中的身份通过账号映射成为网络世 界中的用户标识,这种身份标识是分别被每个系统保存的,无法相互传递,即每 个帐号都是孤立的1 1 。3 1 。这就迫使用户必须在每个系统中都有一组独立的用户标 识信息,在进入不同系统时都要重新提交自己的身份标识,来通过系统的认证。 大量的口令密码给用户和管理者带来很多麻烦,给提高生产和工作效率带来很大 的干扰。同时,由于同一用户在不同的系统中用户名称不尽相同的,在各个系统 的角色也是不尽相同,大多数情况下,每一个系统的授权系统是相互独立的。这 样,相同用户、不同的名称、不同的角色也给访问控制带来很大的麻烦,也影响 到了后期的审计和管理。因此,我们迫切需要改变传统的身份认证方式并设计出 一种更加安全、高效的网络认证机制,从而简化网络资源的访问控制,加强安全 审计,因此,单点登录的概念由此产型4 蚓。 所谓的采用单点登录的鉴别系统,就是指用户只需在网络中主动地进行一次 身份认证,随后便可以访问其被授权的所有网络资源,而不需要再主动参与其它 的身份认证过程。单点登录系统把原来分散的用户管理集中起来,各系统之间依 靠相互信赖的关系来进行用户身份的自动认证。由于用户的信息、是集中保存和 管理的,管理员只需在一个统一的用户信息数据库中添加、删除用户账号,不必 在多个系统中分别设置用户信息数据库【7 8 1 。这样就可以有效的解决了用户不用 武汉理t 大学硕士学位论文 记记住不同应用系统的账户名、口令的问就可以登录和访问被身份服务系统信任 的其他的应用系统的问题。 目前网络应用系统主要采用客户端j j 艮, 务器( c l i e n t s e r v e r ) 和浏览器朋艮务器 ( b r o w s e r s e r v e r ) 两种模式,其中采用b s 模式的应用系统,客户端与服务器 之间是通过h t r p 进行数据传送与交互的,即浏览器以h t r p 协议的格式把请求 送到运行在服务器上的应用系统,应用系统再通过服务器将处理后的结果以 h t l l p 协议的格式返回给浏览器,最后由浏览器显示服务器返回的结果。由于 b s 模式采用浏览器这种标准的技术架构,是目前信息系统发展的主流和趋势, 本篇论文所针对的应用系统即为运行在l l s 服务器上的应用系统。采用b s 模式 的应用系统通常被称为w e b 应用系统1 9 j 。 现在国内外对于单点登录系统已经有了很深入的研究,并且针对b s 模式的 w e b 应用系统的单点登录技术提出了多种解决方案。但是现在单点登录技术要 获得成功有两个关键的问题需要解决:一是如何解决用户在不同系统中帐户之间 的对应、转化的问题,第二个是如何使得已有的各类信息系统、应用系统与单点 登录协议集成的问题。其中第二个问题涉及到了单点登录的集成技术,它也是单 点登录应用中最复杂、最难解决的问题。本文主要解决了这个问题。 1 2 国内外研究现状 1 2 1 系统集成研究现状 为了解决用户登录不同应用系统需要输入不同应用系统的不同帐户名、口令 这一问题,人们提出了单点登录的技术,即用户只需要使用一个身份凭证在一个 身份鉴别系统鉴别完成后,访问其他被其信任的系统就不需要再次提供用户身份 信息进行身份鉴别了。 针对w e b 单点登录的协议目前主要有s a m l 和w s f p r p 两个,在本文的 设计之中使用是由结构化信息标准促进组织o a s i s 制定的s a m l 协议【1 0 d 3 1 。在 s a m l 的技术架构中需要一个被称为i d e n t i f yp r o v i d e r ( i d p ) 的身份服务系统, 而其他的w e b 应用系统则被称为s e r v i c ep r o v i d e r ( s p ) 1 1 4 - 1 6 】。用户只需要到i d p 去进行一次在线身份鉴别,就可以访问i d p 信任的s p 而无需进行登录( 身份鉴 别) 1 1 7 - 2 0 】。但是这种单点登录系统技术方案要获得成功应用,有一个关键的问题 需要解决,即如何使已有的w e b 应用系统与单点登录系统集成。 2 武汉理t 大学硕十学位论文 针对这一个问题现在采用的解决方案有这么几种方案:( 1 ) 应用系统的运行 平台本身支持相关的单点登录协议( 如o r a c a l ew e b l o g i cs e r v e r 支持s a m l 协 议) ,在这种情况下,应用系统则依赖于运行平台进行身份鉴别,即只需配置运 行平台的用户身份鉴别方式,就可以通过协议互联实现单登录1 2 1 , 2 2 】。( 2 ) 通过修 改应用系统的用户登录部分的实现,可能包括修改身份鉴别的相关配置,修改相 应用户的登录模块掣2 3 1 。( 3 ) 通过运行平台提供的身份鉴别扩展机制,如对于 微软的i i s 这款w e b 服务器,可以通过i s a p i 扩展i i s 的身份鉴别功能。 但是现在一般采用的上述三种方案或多或少都有着自己的局限性,在第一种 集成解决方案仅适用于那些支持相应单点登录协议的w e b 应用平台,但目前大 多数的w e b 运行平台( 服务器) 并不支持相应的单点登录协议,因此这种方案 仅对少部分平台适用。第二种集成方案需要修改身份鉴别的相关配置,甚至需要 修改用户登录部分的实现源码,但是由于担心修改系统后会对系统的稳定性、安 全性造成影响,或者系统的源码没有提供,因此第二种方案也有很强的局限性。 第三种方案不是所有w e b 运行平台都提供了身份鉴别的扩展机制,或者是理论 上提供了这种扩展机制,但实际由于技术上的限制,扩展的身份鉴别机制难以达 到与之前相同的功效。 1 2 2i s a p i 研究现状 在w e b 服务器这个竞争激烈的领域里,微软的i n t e r n e t 信息服务器一i s ( i n t e r n e ti n f o r m a t i o ns e r v e r ) 是当今w i n d o w s 操作平台上执行效率最佳的w e b 服务器之一,由于现在w i n d o w s 在当今商业上的广泛应用,已经成为了一款很 有研究价值的服务器。i i s 提供了所有传统的内容传递方式,它不但对静态网页 有着良好的支持,而且对动态网页也可以通过c g i ( 公共网关接口) 和i s a p i 扩展程序实现。 i s a p i 的全称为i n t e r n e ts e r v e ra p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ( 互联网服 务应用程序编程接口) ,它是由微软提供的是一组面向i i s 服务器的一组a p i 函 数接口,它主要是用来开发与微软提供的i i s 服务器相结合的应用程序。由于 i s a p i 与i i s 服务器之间的紧密结合,因此合理利用i s a p i 可以开发灵活、高效 的i i s 服务器增强程序。 i s a p i 程序主要用来开发对i i s 服务器可进行功能扩展的应用程序,这些 i s a p i 应用程序以动态链接库的形式被i i s 服务器加载到服务器的进程空间中, 3 武汉理j t :大学硕十学位论文 并且和服务器共同使用同一个内存空间,当相应事件触发时被调用。使用i s a p i 创建的动态链接库又可以分为两类:i s a p i 过滤器( f i l t e r ) 和i s a p i 扩展程序 ( e x t e n s i o n ) 2 4 】。 其中i s a p i 过滤器主要作用是用修改和提高i i s 功能,i s a p i 过滤器位于服 务器和客户端的网络连接之间,筛选每一个h t r p 请求直到筛选到他们需要处理 请求和响应,并完成对筛选到的请求和响应的处理。i s a p i 扩展是可被客户端浏 览器调用的动态链接库,它与通用网关接口( c g i ) 应用程序具有相似的功能。 尽管使用i s a p i 编写程序要比使用c g i 编写复杂一些,但是由于i s a p i 和i i s 服 务器在的同一地址空间中运行,i s a p i 可以访问由i i s 服务器所使用的所有资源, 并且i s a p i 扩展不需要创建其他进程,也不需要执行越过进程边界的通信,而这 种通信方式非常的耗时,因此通过精心设计的i s a p i 扩展程序执行的效率要比 c g i 应用程序提高至少一个数量级。而i i s 服务器与i s a p i 扩展之间的集成使一 些功能执行起来更省力,并通过与i s a p i 过滤器之间的结合使用可实现c g i 程 序无法实现的功能。 在i i s6 0 中,由于i s a p i 过滤器不能访问请求主体,只能访问请求头部。 为了使i i s 6 0 的开发者可以访问请求的主体,在i i s 6 0 中提供了使用通配符应用 程序映射的功能,即把应用程序配制成通配符应用程序,使所请求的页面在发送 到其映射应用程序之前截获每个请求。其中被使用为通配符应用程序映射的应用 程序只能是i s a p i 扩展应用程序。 1 2 3 身份鉴别协议研究现状 身份鉴别是信息系统安全身份的第一道也是最重要的一道防线。身份鉴别不 但要告诉系统用户是谁,更要让系统验证用户是否有效的一个过程。通过身份鉴 别可以为用户身份的真实性提供保证,常用的身份鉴别技术常与加密技术相互结 合【2 5 2 7 1 。 身份鉴别是一个服务器端验证客户端身份的过程,客户端可能是最终用户、 计算机、应用程序或服务。为了使运行服务器上的应用系统可对客户端进行认证, 客户端需提供某种形式的凭证用来使服务器验证客户端。确认了客户端的身份凭 证后,应用程序可以授予执行操作和访问资源的原则。尝试对用户进行身份验证 时,根据各种因素的不同,可使用多种行业标准类型的身份验证。目前w e b 服 务器使用的主要协议是h t t p 协议,即超文体传输协议,因此目前依赖于w e b 4 武汉理上人学硕十学位论文 服务器的w e b 应用系统一般都采用h t r p 身份鉴别协议,但有时也会用到f o r m 身份鉴别方式。运行在i i s 服务器上的w e b 应用系统支持的身份验证类型主要是 标准的h t r p 身份鉴别协议即( h t r pb a s i c ,d i g e s t ,n t l m 及n e g o t i a t e ) 2 8 - 3 0 】, 有时也会用到f o r m 身份鉴别方式。 h 丌pb a s i ca u t h o r i z a t i o n ( h t r p 基本认证) 是在r f c 2 6 1 7 中定义的一种 h r r p 身份鉴别方式。h t i tb a s i c 是允许w e b 浏览器在h 1 旧请求时提供以用 户名和口令形式的凭证。在发送前,浏览器把用户名和密码用冒号串接起来,然 后进行b a s e d 6 4 编码,最后把b a s e 6 4 编码后的字符串添加到h t t p 的 a u t h o r i z a t i o n 请求头部中,用来让服务器完成身份认证。b a s i c 认证是所有流行 的w e b 浏览器都支持的一种认证方式,并且非常容易实现,但该方式是建立在 客户端和服务器主机间的连接是安全可信的基础上的,但当没有使用s s i 椰s 这种传输层安全的协议时,以明文方式传输的用户名和口令很容易被拦截下来, 这样使用户的信息安全得不到保证,因此在r f c 2 6 1 7 中又提出了另一种h t t p 认证方式,即h 1 叩d i g e s ta u t h o r i z a t i o n ( h t t p 摘要式认证方式) 【孤j 。 h t r pd i g e s t 是一种不需要通过网络传递明文密码的方法进行认证,它对 b a s i c 认证加以了改进,这种认证方式可以防止重放攻击。在客户端未通过认证 的情况下,发送请求后会收到服务器端返回的包含4 0 1u n a u t h o r i z e d 的响应头部, 并在w w w - a u t h e n t i c a t e 的响应头部中包含一个服务器端生成的n o n c e ,以后客 户端请求时都用户名、密码、服务器端返回的n o n c e 以及客户端生成的c l i e n t n o n c e ( 每次访问的值都不同) 一起进行m d 5 哈希得到r e s p o n s e 的结果,后传 把这些信息和产生的r e s p o n s e 添加到h 1 曙的a u t h o r i z a t i o n 请求头部中发送给 服务器。这样即使有窃听,他也无法通过每次认证,不能进行重放攻击。 另外w i n d o w s 还提供了两种h t t p 身份验证方式,即n t l m 方式和n e g o t i a t e 方式。其中h t r pn t l m 身份认证是质询一响应方案,n t l m 使用w i n d o w s 凭 据( 而不是未编码的用户名和密码) 来转换质询数据。n t l m 身份验证需要客 户端和服务器之间的多次交换,因此服务器和所有参与的代理都必须支持持久连 接,才能成功完成身份验证。而h t r pn e g o t i a t e 自动在k e r b e r o s 协议和n t l m 身份验证间选择,具体取决于可用性。如果k e r b e r o s 协议可用,则使用k e r b e r o s 协议;否则,尝试使用n t l m 。 f o r m 身份鉴别的具体实施的途径通常是w e b 应用系统有一个专门的登录页 面,当用户第一次访问服务器中受保护的资源时通过外部重定向的方式重定向到 5 武汉理l :入学硕十学位论文 一个用户登录界面,提供给用户输入用户身份信息,然后通过p o s t 方式把用户 信息放在b o d y 体中提交给一个专门用来验证用户身份信息的页面,此页面被称 为用户登录验证页面【3 2 3 4 】。当用户通过身份验证以后就有权限访问受保护的资 源。 1 3 论文的研究内容 在本系统中我需要解决的是运行在i i s 上的w e b 应用系统与单点登录系统的 集成问题。由于运行在i i s 上的w e b 应用系统一般情况下不支持s a m l 单点登 录协议,所以第1 2 1 节中提出的第一种方案是不可行的。又由于i i s 服务器是 微软提供的一款服务器,微软的系统一般都是不开源的,所以根本没有系统的源 代码,也没有办法通过修改源代码的方法修改它的登录模块:并且微软担心对 i i s 服务器稳定运行带来影响,也不会允许更改它的后台运行的模块,所以说第 1 2 1 节中的第二种方案同样不可行。第三种方案通常需要改变平台以前的身份 鉴别方式,并且需要w e b 平台提供身份鉴别的扩展机制。虽然微软提供了i s a p i 用来扩展i i s 的身份鉴别功能,但是实际上只能在i i s 配置为匿名身份鉴别方式 下才能扩展定制其他的身份鉴别机制。如果采用这个方案它不但改变了i i s 提供 的身份鉴别的方式,而且由于微软没有公开i i s 的内部技术,所以很难基于i s a p i 扩展开发出与i i s 自身提供的身份鉴别机制功能相同的身份鉴别机制,所以1 2 1 节中提出的第三种方案也不可行。总之现阶段国内外所常用的几种系统集成的解 决方案不能够解决运行在i i s 上的w e b 应用系统与单点登录系统的集成问题。本 文基于i i s 服务器的开发接口i s a p i 提出开发一种i i s 服务器插件的解决方案, 通过该解决方案可以实现在不改变原有w e b 应用系统的身份鉴别方式和相关配 置的前提下就可以完成系统的集成。 由于本篇论文所研究w e b 应用系统的运行平台是i i s 服务器,它所采用的身 份鉴别协议主要就是h t t p 身份鉴别协议( h t t pb a s i c ,d i g e s t ,n t l m , n e g o t i a t e ) ,也有一些系统采用f o r m 身份鉴别方式。针对这种情况,本文采用 的解决办法就是开发i i s 服务器的插件来实现w e b 应用系统与单点登录系统的集 成。开发出来的服务器插件对h 丌p 请求、响应的相关内容的修改来实现单点登 录的功能。这样,就可以做到在不改变原有系统的身份鉴别机制、配置及功能的 前提下通过i s a p i 过滤器就完成了系统的集成。 面向h 1 r r r p 身份鉴别协议的插件只需对h r r p 请求和响应头部进行处理就可 6 武汉理r :大学硕+ 学位论文 以完成系统的集成,所以只使用了i s a p i 过滤器。此时作为服务器插件的i s a p i 过滤器主要完成的任务有:( 1 ) 如何根据相关的用户信息产生认证头部;( 2 ) 如 何使用i s a p i 过滤器拦截h t r p 请求头部,并对请求头部进行相应处理,比如添 加a u t h o r i z a t i o n 请求头部:( 3 ) 如何使用i s a p i 过滤器拦截h 丁r p 响应头部, 并对响应头部进行相应处理,比如设置c o o k i e 等; 面向f o r m 身份鉴别方式的插件不但要对h 1 曙请求和响应头部了进行处 理,还要对以p o s t 方式提交的b o d y 体进行修改,所以这个插件使用i s a p i 过 滤器和通配符应用程序。i s a p i 过滤器仍然是拦截h t l l p 请求和响应头部,对其 进行处理;通配符应用程序主要拦截去登录验证页面的p o s t 方式的请求,并完 成对b o d y 体的修改。 总之,通过对以上两种插件的实现成功的解决了运行在i i s 服务器上的w e b 应用系统与基于s a m l 协议的单点登录系统的集成问题。 1 4 本文的组织与结构 为了解决运行在i i s 服务器上的w e b 应用系统与基于s a m l 协议的单点登 录系统的集成问题,针对w e b 应用系统常使用的h 1 呼身份鉴别协议和f o r m 身 份鉴别方式,本文分别设计和开发了面向h 盯p 身份鉴别协议的插件和面向f o r m 身份鉴别方式的插件。由于h t r p 身份鉴别协议应用范围更广,所以在文中以面 向h t t p 身份鉴别协议插件为重点介绍了其设计和开发。 文中第二章介绍了面向h t r p 身份鉴别协议开发的i i s 服务器插件的设计方 案。在此章中首先分析了当w e b 应用系统运行h t t p 身份鉴别协议时用户和服 务器之间是通过怎样的交互过程来完成身份鉴别的。第二部分通过对基于s a m l 协议的单点登录系统的整体结构及各部分的功能,来说明了所开发的插件所在整 体结构的作用和功能。第三部分介绍了当i i s 服务器安装了面向h 1 阿身份鉴别 协议的插件后,客户端在没有通过使用h t r p 身份鉴别协议的w e b 应用系统的 身份认证的情况下,访问w e b 应用系统的工作流程。最后把服务器插件分为请 求处理模块、响应处理模块及认证头部生成模块分别进行了设计,并且由于基于 s a m l 协议的单点登录系统需要安全令牌处理页面处理身份服务系统发送过来 包含用户身份信息的安全令牌,因此也对安全令牌处理页面进行了设计。第三章 对请求处理模块、响应处理模块及安全令牌处理页面使用i s a p i 接口进行了实 现,对认证头部生成模块调用s s p i 接口进行了实现。 7 武汉理i :火学硕七学位论文 第四章是面向f o r m 身份鉴别方式的i i s 服务器插件的设计与实现。首先通 过介绍系统的整体结构来展示开发出来的插件在整个系统中的作用和功能,然后 介绍了当客户端在没有通过身份鉴别时访问安装了服务器插件的运行在i i s 服务 器上的w e b 应用系统的工作流程,最后设计和实现了面向f o r m 身份鉴别方式的 i i s 服务器插件。 第五章则通过对比没有安装i i s 服务器插件与安装i i s 服务器插件后,用户 访问w e b 应用系统时效果有什么不同来展示了开发出来的插件的作用。 武汉理f :人学硕士学位论文 第二章面向h t t p 身份鉴别协议的插件设计 2 1h t t p 身份鉴别协议的原理分析 在我们不使用开发出来的h t r p 服务器插件的情况下,当我们第一次访问 i i s 服务器上的w e b 应用系统中受保护的资源时,w e b 应用系统会拒绝匿名请求, 然后返回要求身份鉴别的响应头部,也就是向客户端浏览器发送响应状态码“4 0 1 u n a u t h o r i z e d ”,同时指示用户必须进行身份验证。在发送包含4 0 1 响应状态码的 响应头部中服务器还发送了w w w - a u t h e n t i c a t i o n 头部,它用来指示客户端需要 采用哪种身份鉴别协议。w e b 应用系统一般都支持h t i p 身份鉴别协议,h t r p 身份鉴别协议主要有n e g o t i a t e 、n t l m 、d i g e s t 、b a s i c 四种。服务器可以指明 一种或同时指明多个身份验证协议供客户端选择,此时客户端就会按照 n e g o t i a t e 、n t l m 、d i g e s t 、b a s i c 的顺序来选择一种身份鉴别协议来完成其身份 鉴别。下面我们将依次介绍客户端和服务器端是通过怎样的交互方式来完成这四 种身份鉴别协议的。 n e g o t i a t e 身份认证( 协商身份认证) ,它会自动在k e r b e r o s 身份鉴别协议和 n t l m 身份鉴别协议之间进行选择,具体情况取决于两种鉴别协议的可用性。 即如果k e r b e r o s 身份鉴别协议可用,则使用k e r b e r o s 身份鉴别协议,而不会尝 试使用n t l m 身份鉴别协议;否则,则尝试使用n t l m 身份鉴别协议。其中 k e r b e r o s 身份鉴别方式比n t l m 身份鉴别方式具有更多优势。比如说k e r b e r o s 身份验证既快于n t l m ,又允许使用相互身份验证和将凭据委托至远程计算机。 但是k e r b e r o s 协议最大的缺点就是仅适用于内网访问应用系统。下面主要介绍 在k e r b e r o s 身份鉴别协议可以成功使用时n e g o t i a t e 的客户端被认证过程,如图 2 1 所示。 9 武汉理 大学硕十学位论文 受保护的资 亘 1。一 4 0 1u n a u t h o r i z e d 聊哪一a u t h e n t i c a t en e g o t i a t e g e t 受保护的资源 a u t h o r i z a t i o nn e g o t i a t es p n e g ot o k 图2 1n e g o t i a t e 的相互认证的过程 如图2 1 所示,在n e g o t i a t e 的认证过程,首先当用户向受保护的资源发起 请求时,由于第一次访问时还没有进行身份认证,服务器端返回给客户端浏览器 的头部中包含有4 0 1u n a u t h o r i z e d 的响应状态码,并且把w w w - a u t h e n t i c a t e 头 部的值设为所要求使用的身份鉴别协议的名称( 即n e g o t i a t e ) ,当客户端收到服 务器发回来的h t r p 响应后,会提示用户输入用户名、口令等相关身份信息,然 后生成s p n e g o 令牌,再把令牌经过b a s e 6 4 编码后添加到请求的a u t h o r i z a t i o n 头部中,发送给服务器。服务器收到s p n e g o 令牌后解析并验证令牌的有效性, 如果验证通过,返回2 0 0o k 的头部和用户访问的受保护的资源f 3 5 , 3 6 j 。 其中s p n e g o 协议是在r f c2 4 7 8 中定义的,其主要目的是允许客户端与 服务器协商一个安全的认证协议。而s p n e g o 令牌就是基于这个协议的,用来 相互认证的一种安全令牌。s p n e g o 令牌的二进制编码形式是建立在a s n 1 d e r 基础上的【3 7 】。 2 ) n t l m 身份鉴别协议是一套质询响应的方案,是摘要式身份鉴别协议的 一种更加安全的变体。n t l m 身份鉴别协议要求使用w i n d o w s 凭据( 而不是未 加密的用户名和密码) 来转换质询数据。n t l m 身份验证协议需要客户端和服 务器之间进行多次交换才能完成身份鉴别。服务器和客户端之间必须持久连接, 只有这样才能成功的完成身份验证。图2 2 介绍了n t l m 的相互认证的过程: 1 0 武汉理i :人学硕士学位论文 e 塑口 e t 受保护的资 4 0 1u n a u t h o r i z w w 卜a u t h e n t i c a t e 服务器 i 。一。j g e t 受保护的资源 a u t h o r i z a t i o nn t l mt y p e 一1 一m e s s a g g e t 受保护的资源 a u t h o r i z a t i o nn t l mt y p e 。2 。m e s s a g g e t 受保护的资源 a u t h o r i z a ti o nn t l mt y p e 。3 m e s s a g e 卜一 图2 2n t l m 的相互认证的过程 如图2 2 所示,n t l m 身份鉴别的过程其实就是一个握手式的认证过程,首 先当用户对受保护的资源发起请求时,由于客户端第一次访问而没有完成身份认 证,服务器端返回给客户端浏览器的头部中包含有4 0 1u n a u t h o r i z e d 的响应状态 码,并且把w w w - a u t h e n t i c a t e 头部的值设为所使用的身份鉴别协议的名称( 即 n r l m ) ,当客户端浏览器收到服务器发回来的h 1 t r p 响应后,提示用户输入用 户名、密码等相关身份信息后,生成n t l m 的t y p e 1 m e s s a g e ,经过b a s e 6 4 编 码后添加到请求的a u t h o r i z a t i o n 头部上,然后发送给服务器;服务器端收到 t y p e 1 m e s s a g e 后,在返回给客户端浏览器的响应头部中仍然包含有4 0 1 u n a u t h o r i z e d 的响应状态码,把w w w - a u t h e n t i c a t e 头部设置为n t l m 的 t y p e 2 m e s s a g e ;客户端浏览器收到含有t y p e 2 m e s s a g e 的响应后,会根据 t y p e 2 m e s s a g e 和用户身份信息生成t y p e 3 m e s s a g e 后再次发送给服务器,服务 器收到t y p e 3 m e s s a g e 后验证其有效性,如果验证通过,返回2 0 0o k 的响应头 武汉理丁大学硕十学位论文 部和用户初次访问的受保护的资源。 其中上述的t y p e m e s s a g e 是三个不同的二进制结构体,其中t y p e 一1 一m e s s a g e 主要包括主机名和域名信息:t y p e 2 m e s s a g e 主要包括的信息主要是服务器端产 生c h a l l e n g e ;t y p e 3 m e s s a g e 包括的信息是用户名,主机名,域名以及使用 c h a l l e n g e 、密码等生成的l a n m a n a g e rr e s p o n s e 和n tr e s p o n s e 。 n t l m 身份鉴别的方式是基于连接的而不是基于请求的,这就要求客户端 和服务器端的t c p 连接必须在收到服务器发送过来的t y p e 2 m e s s a g e 到客户端 发送t y p e 3 m e s s a g e 这段时间内保持不断开,如果在这个阶段连接断开了那么 则需要重新建立连接,然后重新按照n t l m 相互认证的整个过程进行交互,而 不仅仅是只把t y p e 3 m e s s a g e 发送给服务器。如果这个连接的认证通过了,那 么只要这个t c p 连接不断开,当客户端再次访问受保护的资源时a u t h o r i z a t i o n 头部就不需要被再次发送了。但如果t c p 连接断开了,再次访问服务器时又要 重新按照n t l m 相互认证的过程进行认证。 3 ) d i g e s t 身份鉴别方式是在客户初次发送请求后,服务器端返回包含有“4 0 1 u n a u t h o r i z e d ”的h 1 曙响应,并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论