




已阅读5页,还剩51页未读, 继续免费阅读
(通信与信息系统专业论文)面向net和iis7的身份鉴别与访问控制技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 摘要 随着网络的高速发展,人们的生活、工作和娱乐与网络结合的越来越紧密。 网络已经深深的影响了人们的生活方式。网络带给人们极大便利的同时,也使 人们遭受着网络被攻击、信息遭泄露的风险。信息安全问题变得越来越突出。 网络应用系统普遍采用身份鉴别和访问控制技术来保证系统的安全。管理众多 的账户以及每访问一个新的应用系统就要进行一次身份验证的方式使人们感到 不方便。在这种情况下,既解决应用系统的信息安全问题,又能解决管理多个 账户的问题,使用户能够平滑的访问各个应用系统的单点登录技术应运而生。 单点登录技术主要有两种,一种是基于脚本的,另一种是基于访问票据的。 基于访问票据的单点登录又可以分为基于c o o k i e 的和基于单点登录协议的。 基于单点登录协议的解决方案在安全性,易用性及使用范围方面都有很大的 优势,逐渐成为单点登录的主流。s a m l 是目前最主要的单点登录协议。 本论文就针对不同的应用系统的特点,提出了不同的单点登录解决方案。 首先实现了对a s p n e t 身份鉴别和访问控制技术的扩展。在a s p n e t 上实 现了基于s a m l 的单点登录功能。将认证系统上的账户和各个应用系统上的账 户建立映射关系,解决了用户账户在认证系统及各个应用系统间的对应和转化 问题。用户在各个应用系统上不再使用单一的帐户,而是在各个应用系统上有 独立的账户。添加了身份鉴别模块,各个应用系统可以选择认证系统账户或者 本系统账户来进行访问控制,也可以调用远程授权系统对应用系统授权。其次 针对已有的不能更改的应用系统或者依赖于i i s 7 做身份鉴别的应用系统的特点, 本论文提出了一种插件式的单点登录解决方案,该插件可以更改请求流和响应 流,通过部署此插件,可使原有的系统实现单点登录的功能。 本论文对上述方案进行了实现,验证了上述方案的可行性。通过这两种方 案,对于即将要发开的系统,提出了一种集成了单点登录的框架,对于已有的 不能更改系统或者依赖于i i s 7 做身份鉴别的应用系统设计了一种插件,通过部 署此插件可使已有的系统实现单点登录。 关键词:a s p n e t :身份认证;访问控制;单点登录; i i s 7 a b s t r a c t w i t ht h ef a p i dd e v e l o p m e n to ft h en e t w o r k ,t h ec o m b i n a t i o no fp e o p l e s l i v e s , w o r ka r i de n t e r t a i n m e n tw i t ht h en e t w o r kb e c o m e sm o r ea n dm o r ec l o s e l y f 1 1 e n e t 、7 l ,o r kh a sb e e nd e e p l ya f f e c t e dp e o p l e sl i f e s t y l e t h e n e t w o r kb n n g sg r e a t c o n v e n i e n c e ,b u ta l s op e o p l es u f f e r i n gf r o m n e t w o r ka t t a c k s ,t h er i s ko f1 n f o 册a t l o n b e i n g1 e a l 【e d h l f o 衄a t i o ns e c u r i t yi s s u e sb e c o m e m o r ea n dm o r ep r o m i n e n t n e 啪r k a d p l 触i o n su s ea u t h e n t i c a t i o na n d a c c e s sc o n t r o lt e c h n o l o g yt oe n s u r et h es e c u n t y 0 t a p p l i c a t i o ns y s t e m t h em a n a g e m e n t o fal a r g en u m b e ro fa c c o u n t sa j l de v e r ya c c e s s t 0an e wa p p l i c a t i o ns y s t e mw i l lb ec a r r i e do u t o l l c ea u t h e n t i c a t e dt om a k ep e o p l ef e e l i n c o i e n i e n t 1 i lt h i sc a s e ,s i n g l es i g n - o nt e c h n o l o g yc a i l l e i n t ob e i n g i tc a nr e s o l v e t h ei n f b m a t i o ns e c u r i t yi s s u e so fa p p l i c a t i o n ,a n d c a l la l s or e s o l v et h ei s s u eo f m a i l a g i n gm u l t i p l ea c c o u n t s ,a l l o wu s e r st os m o o t h a c c e s st oe a c ha p p l i c a t l o mt h e r e 缸et w om a i ns i n g l es i g n o nt e c h n o l o g i e s ,o n ei ss c r i p t - b a s e d ;t h eo t h e r i sb a s e do n a c c e s st i c k e t s i n g l es i g n o nt e c h n o l o g i e sb a s e d o na c c e s st i c k e tc a l lb ed 1 v 1 d e di n t o t h ec o l o k i e b a s e da i l dp r o t o c 0 1 b a s e d p r o t o c o l - b a s e ds i n g l es i g n 。o ns o l u t l o nh a s t h e 灯e a ta d v a n t a g ei nt e r m so fs e c u r i t y ,e a s eo f u s ea n ds c o p eo fa p p l i c a t i o i l i t 铲a d u a l l y b e c 0 m e st h em a i n s t r e a mo fs i n g l es i g n o nt e c h n o l o g i e s s a m l i sc u r r e n t l yt h em o s t i m p o r t a n ts i n g l es i g n o np r o t o c o l i i lt h i st h e s i s ,f o ra p p l i c a t i o n sw i t h d i f f e r e n tc h a r a c t e r i s t i c s ,d i f f e r e n ts l n 出e s i g n 0 n s o l u t i o n s h a v eb e e n p r o p o s e d f i r s t , a l le x t e n s i o na b o u ta s p n e t a u t h e i l t i 训o na i l da c c e s sc o n t r o lt e c h n o l o g i e sh a sb e e ni m p l e m e n t e d s a m m a s e d s i n g l es i g n o nf u n c t i o n a l i t y h a sb e e ni m p l e m e n t e di n a s p n e t t h em a p p m g r e l a t i o n s h i ph a sb e e ne s t a b l i s h e db e t w e e nt h ea c c o u n to n a u t h e n t i c a t i o ns y s t e ma n a t h ea c c o u n t0 nt h ev a r i o u sa p p l i c a t i o ns y s t e m s t h i sc a ns o l v et h ep r o b l e mo ft h e c 0 n v e r s i o nb e 似e c nu s e r a c c o u n ti nt h e c e r t i f i c a t i o ns y s t e ma n dt h ev a n o u s a p p l i c a t i o ns y s t e m s u s e r s i nv a r i o u sa p p l i c a t i o n sn ol o n g e ru s e as i n 出ea c c o u n t ,b m e a c hs v s t e mh a sas e p a r a t ea c c o u n t a na u t h e n t i c a t i o n m o d u l eh a sb e e na d dt o a s p n e t e a c ha p p l i c a t i o nc a nc h o o s et h ea c c o u n to f t h ec e r t i f i c a t l o ns y s t e m0 rt n e 武汉理工大学硕士学位论文 l o c a ls y s t e ma c c o u n tt oa u t h o r i z e d ,r e m o t ea u t h o r i z a t i o ns y s t e mc a na l s ob ec a l l e db y t h ea p p l i c a t i o ns y s t e mt oa u t h o r i z e s e c o n d ,f o re x i s t i n ga p p l i c a t i o n st h a tc a nn o tb e c h a n g e do ra p p l i c a t i o n st h a tr e l yo nt h ei i s 7t oa u t h e n t i c a t e ,t h i sp a p e rp r e s e n t sa p l u g g a b l es i n g l es i g n - o ns o l u t i o n ;t h ep l u g i nc a nc h a n g et h ef l o wo fr e q u e s t sa n d r e s p o n s e s t h r o u g ht h ed e p l o y m e n to ft h i sp l u g i n ,w i l le n a b l et h eo r i g i n a ls y s t e mt o a c h i e v e s i n g l es i g n - o n f u n c t i o n i nt h i st h e s i s ,t h ea b o v es o l u t i o n sh a v eb e e ni m p l e m e n t e d ,t h i sv e r i f yt h e f e a s i b i l i t yo ft h ea b o v es o l u t i o n s w i t ht h e s et w os o l u t i o n s ,f o rt h es y s t e mt h a tw i l lb e d e v e l o p i n g ,a l li n t e g r a t e ds i n g l es i g n o nf r a m e w o r kc a n b eu s e d ;f o re x i s t i n gs y s t e m s t h a tc a l ln o tb ec h a n g e do rs y s t e m st h a tr e l yo nt h ei i s 7t oa u t h e n t i c a t e ,ap l u g - i nc a n b eu s e d t h r o u g ht h ed e p l o y m e n to ft h i s p l u g i n ,w i l le n a b l ee x i s t i n gs y s t e m st o a c h i e v es i n g l es i g n o n k e y w o r d s :a s p n e t ;a u t h e n t i c a t i o n ;a c c e s sc o n t r o l ;s i n g l es i g n - o n ;i i s 7 i i i 武汉理工大学硕士学位论文 1 1 研究背景和意义 第1 章绪论 随着互联网的高速发展,网络应用系统得到了空前的发展,这包括面向个 人的论坛、博客、购物平台、社交网站等等,以及面向企业的各种办公信息化 的系统,这些应用系统在给人们的生活、办公带来了很大方便的同时,也给人 们带来了困扰。 首先是用户在这些应用系统上的信息安全问题【1 】。由于网络越来越发达,人 们将越来越多的工作、生活和娱乐转移到网络上,以往从没有任何一个时代像 现在一样将网络和人们的生活结合的如此紧密。人们在享受信息时代带来的方 便的同时,也遭受着信息被人窃取,遭人冒名顶替等各种各样的威胁。随着网 络攻击事件的增多【2 1 ,信息安全技术也受到了越来越多的关注。身份认证和访问 控制是信息安全技术的重要部分,身份认证是指计算机及网络系统确认操作者 身份的过程,访问控制是通过某种途径显式的准许或限制访问能力及范围,从 而限制对关键资源的访问,防止非法用户的侵入或者合法用户的不慎操作造成 的破坏【3 4 1 。 其次是管理与这些应用系统对应的用户名和密码问题。由于w e b 应用系统 众多,而每个w e b 应用系统都有对应的用户名,如果各个应用系统的用户名和 密码不同,这就迫使用户记忆多个用户名和密码,这很容易导致各个应用系统 之间的用户名和密码的混淆,也容易导致用户名和密码的遗忘。虽然各个应用 系统都有密码找回的机制,但对于用户来说,这还是过于繁琐。如果将多个应 用系统设置成相同的用户名和密码,这固然可以免去记忆多个用户名和密码的 麻烦,但由于各个系统的安全级别不同,安全级别较低的应用系统就会成为非 法入侵者的突破口,一旦某个应用系统的用户名和密码泄露,其他的应用系统 的信息也不再安全。另外,由于各个w e b 应用系统之间是独立的,当从一个应 用系统转到另外一个应用系统的,用户还需要再次输入对应系统的用户名和密 码,当w e b 应用系统较少的时候,这尚可以忍受,随着需要使用的w e b 应用 系统的增多,重复输入用户名和密码已经成为限制用户平滑的访问各个应用系 武汉理工大学硕士学位论文 统的重要瓶颈之一。 鉴于以上因素,在w e b 应用系统空前繁荣的今天,人们迫切需要一种既解 决应用系统的信息安全问题,又能管理众多w e b 应用系统间用户名和密码,使 用户能够平滑的访问各个应用系统的解决方案。在这种大背景下,作为身份鉴 别技术的一种衍生物的单点登录技术应运而生。 单点登录,简称s s o ( s i n g l es i g no n ) ,是指用户在多个特定逻辑安全域中, 只需登录一次就可以访问所有互相信任的授权资涮引。通过单点登录技术,人们 可以在访问不同应用系统的时候,不必频繁的输入用户名和密码,也不必记忆 众多的用户名和密码,这可以明显提升各个应用系统的用户体验。因此单点登 录技术逐渐成为企业业务整合的解决方案之一,也在高校信息化建设中起到了 重要的作用。 1 2 国内外研究现状 就目前来说,单点登录【6 7 】技术主要有两种,一种是基于脚本的,另一种 是基于访问票据的。基于脚本的单点登录是通过记录用户输入的用户名和密 码来实现的。当用户首次登陆时,记录下用户的认证信息。如果用户再访问 其他的需要认证的资源时,脚本程序会自动发起与该应用系统的交互,完成 登陆操作。因此,就对用户来说,实现了只登陆一次就可实现访问多个系统 的单点登录功能。但是基于脚本的单点登录安全性不高,另外还需要安装客 户端软件。因此采取基于脚本来实现单点登录的解决方案并不多见。 基于访问票据的单点登录又可以分为基于c o o k i e 的和基于单点登录协议 的。基于c o o k i e 的单点登录【8 ,9 】是通过在不同的应用系统间共享c o o k i e 来实 现的。当用户访问一个应用系统,通过认证后,系统向客户端发放认证c o o k i e , 当用户访问受信任的另外一个应用系统时,客户端将该c o o k i e 发送给该应用 系统,应用系统获取c o o k i e 后,得到用户信息,从而认证通过。因此,就对 用户来说,实现了单点登录功能。但是基于c o o k i e 的单点登录技术有以下缺 陷。首先,c o o k i e 有作用域,作用域有域名和路径组成。当h t r p 请求的路 径包含在c o o k i e 的作用域中时,浏览器将c o o k i e 发送给服务器。因此,如果 要实现单点登录功能,各个应用系统的域名必须具有相同的基部。其次,各 个应用系统对c o o k i e 的处理方式必须相同,如果有应用系统对c o o k i e 进行了 加密,那么其他应用系统也必须采用相同的算法和密钥来加密和解密c o o k i e 。 2 武汉理工大学硕士学位论文 由于以上原因,基于c o o k i e 的单点登录技术安全性不强,也只能解决小范围 的单点登录问题。 基于单点登录协议的单点登录【l o 】是使用专门设计的单点登录协议来传输 用户的身份信息来实现的。基于单点登录协议的单点登录解决方案通常由一 个专门用来提供身份认证的i d p ( i d e n t i t yp r o v i d e r ) 和众多提供服务的 s p ( s e r v i c ep r o v i d e r ) 群l 应用系统组成。 s p 依赖于i d p 提供的身份认证功能。 当一个用户要访问一个s p 上受保护的资源时,s p 会将该请求重定向到i d p 的身份认证界面,当用户认证通过后,i d p 会向客户端发放认证c o o k i e ,同 时将一份符合单点登录协议的表单数据发送给s p ,s p 接收到表单认证通过 后,向客户端发放本s p 的认证c o o k i e 。当用户访问其他的s p 时,s p 同样将 该请求重定向到i d p ,由于事先已经在i d p 认证过了,i d p 会向新的s p 发送 一份符合单点登录协议的表单数据,s p 接收到表单认证通过后,向客户端发 放本s p 的认证c o o k i e 。从而实现单点登录功能。 就目前来说,最主要的单点登录协议是s a m l 协议【1 1 。1 3 】。 s a m e ( s e c u r i t ya s s e r t i o nm a r k u pl a n g u a g e ) 卧l 安全断言标记语言,由o a s i s 组织安全服务技术委员会( s e c u r i t ys e r v i c e st e c h n i c a lc o m m i t t e e ) 开发。它是一个 基于x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 的框架,用于在系统之间交换认证、 授权和属性信息【体1 7 1 。在它的设计之初就把单点登陆作为主要的应用之一,它 定义了在多个相互信任的应用系统之间传输安全信息的格式和方法,因此在很 短的时间内,它就得到了包括l a p 、s u m 、微软、i b m 、n o v e l l 、n e t e g r i t y 、r s a 在内的许多公司和组织的支持。因此基于s a m l 的单点登录【培m 】成为主流。2 0 0 4 年1 2 月o a s i s 发布了s a m l 2 0 版本,新版本修改了旧版中不合理的地方,另 外也增加了一些新的内容,从而适应新的应用环境。 单点登录与应用系统的集成是单点登录技术成功的关键技术。目前的方案主 要有: ( 1 ) w e b 服务器平台支持单点登录协议,如o r a c l ew e b l o g i cs e r v e r 的最 新版本支持s a m l 协议。但这种情况并不常见,因为目前大多数的应用系统并 不支持相应的单点登录协议。 ( 2 ) 通过w e b 服务器平台提供的身份鉴别扩展机制,扩展w e b 服务器的 身份鉴别方式,使其支持单点登录协议。如i i s ( i n t e m e ti n f o r m a t i o ns e r v i c e s ) 通过i s a p i ( i n t e m 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 7 2 2 冽 3 武汉理工大学硕士学位论文 以后的版本也可以通过n a t i v e c o d ea p i 来扩展,但实际上这种扩展是受限的, 很难开发出与i i s 自身的身份鉴别机制同等功效的单点登录身份鉴别机制。 ( 3 ) 修改应用系统的身份认证机制,如修改a s p n e t 运行时中的身份鉴别 和访问控制模块【2 5 铷】。但这种方案要修改原应用系统,可能会影响原应用系统 的工作方式以及稳定性。 1 3 论文的主要研究工作 本论文主要研究面向n e t 和i i s 7 的身份认证和访问控制技术,将单点登录 技术分别在a s p n e t 及i i s 7 上实现。主要研究工作主要有以下几方面: ( 1 ) 对a s p n e t 的f o r m s 身份验证机制及工作流程进行了分析,同时研 究了基于s a m l 的单点登录机制,将基于s a m l 的单点登录机制在a s p n e t 中实现,并做了相应的绑定和映射,解决了用户账户在i d p 和s p 之间的对应、 转化的问题,在此基础上添加了一些访问控制选项,完成了对a s p n e t 身份鉴 别与访问控制技术的扩展。 ( 2 ) 对于不能修改源代码以及不能替换身份鉴别方式的已有a s p n e t 系 统设计和实现了基于h t t p m o d u l e 的过滤器插件,该插件可以拦截和更改请求流 和响应流,通过部署此插件,可使a s p n e tw e b 应用使用单点登录功能。 ( 3 ) 对i i s 7 集成的几种身份验证机制及n a t i v e c o d ea p i 进行了研究,并 在此基础上,设计和实现了基于n a t i v e c o d ea p i 的过滤器插件,该插件可以拦 截和更改请求流和响应流,通过部署此插件,可使部署在i i s 7 上的使用b a s i c 、 k e r b e r o s 或者n t l m 身份验证协议进行身份认证的w e b 应用系统使用单点登录 功能。 1 4 论文组织结构 本文共分为六章,具体的章节安排如下: 第一章绪论 本章首先介绍了课题的研究背景和意义,简单介绍了国内外的研究现状,主 要是现有的单点登录技术。最后给出了论文的主要研究内容和组织结构。 第二章a s p n e t 身份鉴别与访问控制技术扩展 4 武汉理工大学硕士学位论文 本章首先介绍了a s p n e t 框架,包括a s p n e t 对请求及响应的处理,以 及a s p n e t 框架集成的身份鉴别和访问控制技术。然后提出了在a s p n e t 平 台上实现单点登录的方案,该方案在实现单点登录功能的同时,解决了用户账 户在i d p 和s p 之间的转化问题,使用户既可以根据i d p 上的主账户信息授权也 可以根据s p 上的从用户信息授权,从而实现了对a s p n e t 身份鉴别和访问控 制的扩展。最后,实现了该方案,并对系统的关键技术做了说明。 第三章面向a s p n e t 的插件式单点登录技术 本章针对已有的使用f o r m s 身份验证的a s p n e t 系统,提出了一种插件式 的单点登录方案,该插件通过拦截和更改对登录页面的请求和响应来实现单点 登录。本章首先介绍了该方案的设计思路,主要包括采用该方案实现单点登录 后系统的整体架构以及对请求和响应的处理流程,然后又介绍了系统整体的工 作流程。最后,实现了该方案,并对系统的关键技术做了说明。 第四章面向i i s 7 的插件式单点登录技术 本章首先介绍了i i s 7 集成的几种身份验证机制,然后针对i i s 7 集成的身份 验证的工作机制,借鉴前一章的插件式单点登录技术,提出了适用于i i s 7 服务 器的插件式单点登录解决方案。然后介绍了该方案的设计,包括整体架构、对 请求和响应的处理流程以及系统的整体工作流程。最后,实现了该方案,并对 系统的关键技术做了说明。 第五章测试与分析 本章主要对前几章提出的解决方案的实现进行测试,并对结果进行了分析, 验证了提出的方案是切实可行的。 第六章总结与展望。 对全文研究工作进行了总结,提出了研究工作中的不足之处,以及下一步 改进工作的想法。 5 武汉理工大学硕士学位论文 第2 章a s e n e t 身份鉴别与访问控制技术扩展 a s e n e t 是微软推出一个用于构建w e b 应用程序的框架,该框架本身集成 了身份鉴别与访问控制模块。但随着互联网的发展,以及网络应用系统的普及, 人们产生了对单点登录的需求,而a s e n e t 固有的身份鉴别和访问控制技术已 不能满足这些需求。因此需要在固有的身份鉴别和访问控制技术的基础上进行 扩展来适应新的需求。 2 1a s p n e t 框架 a s p n e t 是一个复杂的使用托管代码来从头到尾处理w e b 请求的引擎。它 接受一个发送过来的的w e b 请求,把请求传送给内部的管道进行处理,直到终 点返回处理结果。a s p n e t 与服务器是完全分隔的。在微软的平台上,它是通 过i s a p i 扩展来和i i s 进行交互的。i s a p i 提供了核心的接口,a s p n e t 使用非 托管的i s a p i 代码通过这个接口来从服务器获取请求,并发送响应给客户端。 a s e n e t 提供了在管道中路由请求的机制,其中有很多相关的对象都是可 以扩展的( 通过集成或者事件接口) ,在几乎所有的处理流程上都是如此。所以这 个框架具有高度可扩展性。 2 1 1a s p n e t 架构 a s p n e t 不能独立工作,必须依赖于w e b 服务器。a s p n e t 依赖于i i s 的 整体架构如图2 - 1 所示。 ( 1 ) h t t p s y s :监听来自外部的h t r p 请求。当i i s 启动时,i i s 会在 h t r p s y s 上注册自己的虚拟路径,用来告诉h t r p s y s 哪些u r l 是可以访问 的。如果请求的是一个可以访问的u r l ,h t t e s y s 将该请求交给i i s 。 ( 2 ) a s p n e t 用来连接i i s 和 的 扩展。当一个请求i s a p i d l l :a s e n e ti s a p i 到达i i s 后,i i s 会根据请求文件的后缀名在“应用程序映射”中寻找处理该类后 缀名文件的处理程序。如果是a s p n e t 文件,则将请求交给a s p n e t _ i s a p i d l l , a s p n e t d l l 触发并将请求交给,进入管道。 6 武汉理工大学硕士学位论文 i i sa s p n e t i s a p i d l l a s p n e t ,f m , d u l ei u 个t dc v c hj i r 3 i ) m d u l e2 m (, d u l e3 h a n d l e rih a n d l e r2 浏览器 图2 - 1 a s e n e t 架构图 ( 3 ) m o d u l e :当请求进入a s e n e t 管道后,请求会经过一系列m o d u l e , 这些m o d u l e 对请求有完全控制权,可以对请求做相应处理。同样响应也会经过 这些m o d u l e ,也可以对响应做相应的处理。这些m o d u l e 实现了i h t t p m o d u l e 接 口,可以在这些m o d u l e 中注册许多事件,如b e g i n r e q u e s t 、a u t h e n t i c a t e r e q u e s t 、 a u t h o r i z e r e q u e s t 当请求经过这些m o d u l e 时,注册的事件相继被触发。触发 顺序为m o d u l e1 的b e g i n r e q u e s t 事件、m o d u l e 2 的b e g i n r e q u e s t 事件、m o d u l e 1 的a u t h e n t i c a t e r e q u e s t 事件、m o d u l e 2 的a u t h e n t i c a t e r e q u e s t 事件 ( 4 ) h a n d l e r :经过所有m o d u l e 后,根据配置文件中的配置,请求最终到 达相应的处理程序h a n d l e r ,h a n d l e r 实现了i h t t p h a n d l e r 接口,用来完成对请求 的处理。 2 1 2a s e n e t 安全机制 a s e n e t 的安全机制主要包括身份验证和授权,以及用来标记用户的一系列 对象模型。a s e n e t 内置的身份验证方式有w i n d o w s 身份验证、f o r m s 身份验 证、p a s s p o r t 3 1 】身份验证。这几种身份验证方式都有相对应的身份验证模块,即 m o d u l e 。内置的授权方式有u r l 授权以及f i l e 授权,同样有各自对应的模块。 标记用户的对象模型有表示安全上下文的p r i n c i p a l 对象和表示通过身份验证用 户的i d e n t i t y 对象。p r i n c i p a l 对象有一个i d e n t i t y 属性和一个i s l n r o l e 方法。i d e n t i t y 属性可以获取当前p r i n c i p a l 对象的用户i d e n t i t y ,i s l n r o l e 方法可以判断当前的 p r i n c i p a l 对象是否属于指定的角色。p r i n c i p a l 对象可以通过u s e r 对象来访问。 我们也可以创建自己的p r i n c i p a l 对象并赋给u s e r 对象。 7 武汉理工大学硕士学位论文 当配置为f o r m s 身份验证方式,并在w e b c o n f i g 中提供了 元 素,a s e n e t 则使用f o r m s a u t h e n t i c a t i o n m o u d l e 和u r l a u t h o r i z a t i o n m o d u l e 来 进行身份鉴别和访问控制。当一个匿名用户访问收保护的资源时u r l 授权模块 会将其重定向到登录页面,在登录页面认证通过后,会发放身份认证c o o k i e ,并 再次访问受保护的资源,此时f o r m s a u t h e n t i c a t i o n m o d u l e 利用用户c o o k i e 创建 一个g e n e r a l p r i n c i p a l 对象,该对象包含一个f o r m s l d e n t i t y 对象和用户的角色信 息。f o r m s l d e n t i t y 对象中包含了用户信息。当请求到达u r l 授权模块时,该模 块会检查f o r m s l d e n t i t y 对象中的用户名与 元素中配置的用户名是 否匹配或者检查g e n e r a l p r i n c i p a l 对象中的用户角色信息与 元素中 配置的角色是否匹配。如果匹配则授权通过,如果不匹配则返回拒绝访问提示。 2 2a s p n e t 身份鉴别与访问控制技术扩展的设计 本次对a s e n e t 身份鉴别与访问控制技术的扩展是针对a s e n e t 原有的身 份鉴别和访问控制技术不能满足单点登录的需求而提出来的,所以本次扩展的 目的就是在a s e n e t 上实现单点登录功能,而在a s p n e t 上实现单点登录功能 还需要处理好用户账户在各个s p 和i d p 之间的账户转化问题。本系统采用的单 点登录协议是s a m l 协议,同时在s p 端设置了主从账户数据库用来处理用户账 户的转化问题。 2 2 1 系统整体架构 本系统是建立在f o r m s 身份验证的基础上,在s p 端设置了断言接收模块, 用来处理i d p 传送过来的安全断言,该模块替代了原来的登陆页面。同时设置 了主从账户数据库用来处理用户账户在s p 和i d p 的对应和转化问题。并添加了 身份鉴别模块来实现根据不同的需求授权。系统的整体架构如图2 2 所示。 从图中可以看出该系统由i d p 、浏览器、i i s 、和应用系统组成。应用系统 又包括身份鉴别模块和断言接收模块。 ( 1 ) i d p :提供身份认证功能。当用户提交用户凭证后,系统将用户提交 的用户凭证与主账户数据库中的凭证进行对比,如果验证通过,则为用户发放 身份验证通过标志( 通常是c o o k i e 或s e s s i o n ) ,获取用户的用户名和属性封装在 安全断言中,以p o s t 的形式发送给应用系统。 8 武汉理工大学硕士学位论文 图2 2 系统整体架构 ( 2 ) 浏览器:用户与w e b 应用程序交互的客户端。可以向w e b 应用程序 发送h 1 曙请求,以及接受w e b 应用程序的响应,将其转化为可视化界面。 ( 3 ) i i s 服务器:为应用系统提供请求监听服务,将客户端对应用系统发出 的请求做相应处理后转交给应用系统,并将应用系统生成的响应转发给客户端。 ( 4 ) 应用系统:应用系统包含有从账户数据库和主从账户数据库。从账户 数据库中存放着应用系统的用户名和密码,主从账户数据库中存放着主用户和 从账户的对应关系。应用系统添加了断言接收模块,用来处理i d p 发送过来的 安全断言,并从主从账户数据库中获取本地用户名,到从账户数据库中检测该 从用户是否有效,完成用户在s p 和i d p 之间的转化。添加了身份鉴别模块,增 加了可使用的授权方式。 2 2 2 断言接收模块的设计 断言接收模块替换掉了原来的登录页面,所以也要提供原来登录页面的功 能。原来的登录页面的功能是接受用户名密码,验证通过后发放身份认证 c o o k i e ,断言接收模块的功能是接收i d p 传送过来的安全断言,验证断言后发 放身份认证c o o k i e 。同时还要包括处理账户在s p 和i d p 对应转化以及将登录请 9 武汉理工大学硕士学位论文 求路由到i d p 的功能。当有请求到达断言接收模块时,该模块对请求做如下处 理: ( 1 ) 该模块检测请求的b o d y 体中是否包含断言数据,如果有说明用户已 经在i d p 通过了身份认证,这是i d p 提交过来的存放在安全断言中的用户信息, 转到下一步,如果没有,则说明这是登录请求,转到( 8 ) 。 ( 2 ) 验证传送过来的安全断言,看是否该断言是否为受信任的i d p 所颁发, 该安全断言是否被篡改等,如果验证通过则说明该断言可信,转到下一步,如 果验证不通过,则说明该断言不可信,报错向用户说明断言不可信。 ( 3 ) 获取用户在安全断言中的信息,首先获取用户的主账户信息,然后查 看s p 端是否配置为需要属性授权,如果配置为需要则从断言中获取其他属性信 息,如果配置为不需要,则不用获取。转到下一步。 ( 4 ) 查看s p 端是否启动绑定,如果没有启动则说明s p 端使用安全断言中 的用户信息来对用户进行授权,将用户的主账户信息以及其他属性信息存放在 用户身份认证c o o k i e 中,然后将用户重定向到初始访问页面,通过。如果启用 了绑定,说明s p 端使用用户在对应系统的从账户信息进行授权,转到下一步。 ( 5 ) 在主从账户数据库中查找是否有与主账户对应的从账户,如果没有, 说明在i d p 登录的主账户在该s p 中没有对应的从账户信息,将用户重定向到绑 定页面,通过。用户可以在此页面输入在s p 端的用户名和密码,绑定页面将输 入的用户和密码与从账户数据库中的信息进行对比,验证通过后,将该从账户 信息和对应的主账户信息添加到主从账户数据库中,并将从账户名以及用户信 息存放在用户认证通过c o o k i e 中,然后将用户重定向到初始访问页面。如果查 找到了对应的从账户则转到下一步。 ( 6 ) 在从账户数据库中查看查找到的从账户是否依然有效,如果无效,则 说明主从账户数据库中的信息已过期,删除掉对应的主从账户信息,然后将用 户重定向到绑定页面,让用户用新的从账户与该主账户绑定,通过。如果从账 户有效,则转到下一步 ( 7 ) 将从账户名以及用户信息存放在用户认证通过c o o k i e 中,然后将用户 重定向到初始访问页面,通过。 ( 8 ) 检测用户是否经过身份认证,如果经过了身份认证,系统又将请求重 定向到断言接收模块请求登录,说明已经经过认证的用户无权访问请求的资源, 所以向用户发出提示:无权访问。如果没有经过身份认证,说明这是用户初次 1 0 武汉理工大学硕士学位论文 要求登录,则将登录请求重定向到i d p 。 2 2 3 身份鉴别模块的设计 身份鉴别模块的主要功能是利用i d p 传送过来的的用户信息或者从账户的 信息创建p r i n c i p a l 对象,然后将该对象赋给u s e r 对象,以后用户就是以该模块 创建的p r i n c i p a l 对象的身份访问系统,另外还在改模块中预留了一个接口,该 接口可以调用其他系统的方法,来实现对s p 细颗粒度的授权。当有请求到达身 份鉴别模块时,该模块对请求作如下处理: ( 1 ) 该模块检查请求的用户是否已经经过身份鉴别,只有经过身份鉴别的 用户才有用户信息。如果没有经过身份认证,则将该请求放过,不做任何处理, 如果经过了身份认证,转到下一步。 ( 2 ) 查看配置文件是否设置为启用远程系统授权。如果是则转到下一步, 如果没有启用则跳到( 4 ) 。 ( 3 ) 该模块调用接口将用户的属性信息及用户要访问的资源传送给远程授 权系统,该系统根据用户属性信息及用户要访问的资源做出判断,然后将结果 返回给该接口。如果返回为t r u e ,则允许访问,如果返回为f a l s e 则不允许访问, 给用户返回拒绝访问提示。 ( 4 ) 查看配置文件是否设置为需要用户属性,如果设置了则说明i d p 传送 过来的安全断言里包含了用户的属性信息,该模块就可以利用这些信息创建 p r i n c i p a l 对象,创建p r i n c i p a l 对象是根据配置的授权方式创建的,比如如果授权 方式设置为“g l o b a l g r o u p s ”,则利用主用户的组信息创建p r i n c i p a l 对象,如果授 权方式设置为“g l o b a l r o l e s ”,则利用主用户的角色信息创建p r i n c i p a l 对象,如果 授权方式设置为“l o c a l g r o u p ”,则利用从用户的组信息创建p r i n c i p a l 对象。如果 没设置需要用户属性,则说明i d p 传送过来的安全断言里没有包含用户的属性 信息,该模块最多就只能利用本地用户的组信息创建p r i n c i p a l 对象。如果授权 方式设置为“l o e a l g r o u p ”,则利用从用户的组信息创建p r i n c i p a l 对象。如果授权 方式没有设置,则通过。 在该系统中有两种授权模式,一种是用远程授权系统来对该系统授权,另 一种是利用a s e n e tu r l a u t h o r i z a t i o n m o d u l e 来授权。如果启用了远程授权系 统来授权,最好只在 元素中配置 ,使 u r l a u t h o r i z a t i o n m o d u l e 模块只拦截匿名的请求,而远程授权系统决定经过身份 武汉理工大学硕士学位论文 验证的用户能否访问资源。如果没有启用远程授权系统,就要在 元素中配置d e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论