基于ASPNET的SSO的设计与实现[精品资料]_第1页
基于ASPNET的SSO的设计与实现[精品资料]_第2页
基于ASPNET的SSO的设计与实现[精品资料]_第3页
基于ASPNET的SSO的设计与实现[精品资料]_第4页
基于ASPNET的SSO的设计与实现[精品资料]_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、基于asp.net的sso的设计与实现-精品资料本文档格式为word,感谢你的阅读。摘要:首先对单点登录的实现机制进行了分析,接着 结合asp. net技术,使用fonns身份验证和授权策略对单点登 录方案进行设计与实现,并给些了实现该方案的关键代码如票 据的构造,票据的生成和加密,票据的解密和检验等。实验结 果表明,该sso解决方案对各类应用系统的集成提供了很好的 参考,对推动高校信息化进程具有积极的作用。关键词:单点登录;asp. net; forms身份验证;授权 策略;票据tp311 a 1009-3044 (2013) 33-7463-04随着高校信息化进程的不断推进,拥有相应管理和

2、it 服务的应用系统的数量也在不断地增加,各个应用系统完成的 服务功能各不相同,有些应用系统具有较高的独立性,如财务 系统,有些应用系统需要协同合作完成某个特定任务,如排课 系统、学生成绩录入和查询系统等。由于这些应用系统彼此之 间是松耦合的,各应用系统的建立没有遵循统一的数据标准, 数据格式也各不相同,系统间无法实现有效的数据共享,于是 便形成了网络环境下的信息孤岛。对于需要使用多个不同应用 系统的用户来说,如果各系统各自存储管理一份不同的身份认 证方式,用户就需要记忆多个不同的密码和身份,并r用户在 进入不同的应用系统时需要进行多次登录。这不仅给用户和系 统管理带来了极大地不便,而且在安全

3、方面也埋下了重大的隐 患。单点登录(singel sign-on),简称sso,是一种用于方 便用户访问网络的技术。无论多么复杂的网络结构,用户只需 在登录时进行一次身份认证,即可获得访问系统和应用软件的 授权,以后便可以在网络中自由穿梭,不必多次输入用户劣和 口令來确定身份。因此采用单点登录系统,对促进高校数字化 建设具有非常重要的作用。1单点登录技术及实现机制sso将校园网内部各应用系统的用户登录和用户帐号集 中管理,在访问校园网中不同应用时;单点登录、全网漫游, 而不需要访问每个应用时,重新输入密码。单点登录的机制如 图1所示,当用户第一次访问应用系统1的时候,因为还没有 登录,会被引导

4、到认证系统中进行登录(2);根据用户提供 的登录信息,认证系统通过数据库或ldap进行身份验证,如 果通过校验,返回给用户一个认证的凭据ticket (3);用户 再访问别的应用的时候(4, 6)就会将这个ticket带上,作为自己认证的凭据,应用 系统接受到请求z后会把ticket送到认证系统进行校验,检 查ticket的合法性(5, 7) o如果通过校验,用户就可以在 不用再次登录的情况下访问应用系统2和应用系统3 to在图 1中实现sso,需要以下主要功能:1)所有应用系统共亨一个身份认证系统。统一的认证 系统是sso的前提之一。认证系统的主要功能是将用户的登录 信息和用户信息库相比较或

5、采用ldap,对用户进行登录认 证;认证成功后,认证系统生成统一的认证标志ticket返还 给用户。另外认证系统还对ticket进行校验,判断其有效 性。2)所有应用系统能够识别和提取ticket信息,要实现 sso的功能,让用户只登录一次,就必须让应用系统能够识别 已经登录过的用户。应用系统应该能对ticket进行识别和提 取,通过与认证系统的通讯,能自动判断当前用户是否登录 过,从而完成单点登录的功能。图1单点登录实现的机制2 forms身份验证和授权策略授权通常结合身份验证使用,对经过身份验证的用户授 予一定的、不同级别不同粒度的访问权限。asp. net提供了 3 种基本的身份验证模式

6、:windows authentication forms authentication 和 passport authentication, 其屮以 forms 身份验证最为灵活。这些验证模式可以与各种身份授权策略配合使用。每一种身份验证模式,都需要用户在登录时提供凭 证,一旦身份被核实,用户就会获得一个身份验证票据。 forms身份验证流程如图2所示。3实现的关键代码1)校园门户网站portal项目的web. config中添加如 下声明启用forms身份验证的配置当slidingexpriation=true时,会根据用户的操作向 后自动推移过期时间。用户通过身份验证后,进入校园网por

7、tal fl户网站, 在web. config屮配置url授权:该授权表示当匿名用户请求一个需要验证后才能访问的 资源时,系统就会把用户重定向到sso_controller. aspx页 面,而之前请求的url则被保存起来,在 sso_controller. aspx页面对身份票据进行验证,没有登录则 转至"用户登录界面,输入登录用户名和密码,查询数据库,判 断用户是否存在,存在该用户,构造票据并加密,将该票据附 加在cookie屮,最后转向之前要请求的页面。2)票据的制作。认圧票据是用户访问受保护资源的一张票据,票据包括 以下信息会话id:由认证服务器生成的唯一的会话id;登录的用

8、户名;用户登录时加密后的密码;是否登录标志用户成功登录的时间会话的有效时长:认证服务器赋予票据的有效时间我们采用xml格式书写票据:3)为登录用户创建一个身份验证票证并对票证进行加宓l_l| ostring userid;bool passed = new ()authenticationuser txtpassword. text,userservice(txtusername. text,/获取登录用户名和密码实例userout userid);if (passed! string isnullorempty (userid)formsauthentication. setauthcook

9、ie (userid, true);sessioncontext_user_is_longin二 true; /设置 登录标志sessioncontext_user_id = userid; string returnurl = ilttputilityurldecode (request params/zreturnurlzz);response .redirect (returnurl) ;/构造信息stringbuilder userinfo = new stringbuilder (); userinfo. append (“); if (session/context_user_is

10、_longin/, !二 null (bool) session/zcontext_user_is_longin/z二二truesessioncontext_user_id !二 null) user user = new userservice ()getuserbyld (string) sessioncontext_user_id); if (user !二 null) userinfo. append userinfo. append userinfo. append userinfo. append userlnfo. append(”);(“);(”);():(”);/获取要访问的

11、应用程序application application = new app1icationservice ().getapplicationbyname (requestparamsqpp);if (application !二 null! string.1snullorempty (application. ssokey) application. ssokey.length >= 128) sb. append (')append (ssouti1. desencrypt (userinfo. tostring () , application .ssokey. substr

12、ing (application. ssokey. length / 2 - 1,8)append();4) 票据的检验。当用户试图通过浏览器访问受保护的应用资源时,系统 提供在不同应用上的登录凭证检验来截取用户对资源的请求,并检查请求是否存在 会话凭证。如果凭证不存在,请求就被传递给portal的 sso,在portal的sso上负责创建会话凭证,然后认证服务 将提供登陆页而以验证用户。if ( ! string isnullorempty(request. params/zissubiiiit)requestparamsissubmit = 1) try string ssokey 二/z

13、xd0cemxd0icmyd0gbmye00dnyeljhnzelusnzf3y3gypm93gjp2s2 gsog32ffodm2fzoag2fznmhpkvbljxkwblegkwcqa21wc7k21xcwld lxdmqolzr805inrqk4ixq;string userinfo =ssoutil. desdecrypt (request paramssso_userinfo, ssokey.substring (ssokey.length / 2 - 1,8);response.write (userinfo);xmldocument xmldoc = new xmldocume

14、nt ();xmldocloadxml (userinfo);if (xmldoc selectsinglenode(z,/userinfo/islongin'7) .innertext = z,truezz)formsauthentication. redirectfromloginpage (xmldoc selectsinglenode(z,/userinfo/username/z) .innertext, false);4实验结果下面在vs2008环境下,通过创建基于c#的web应用程 序项h來实现校园网内各应用系统的单点登录。在vs2008中 创建一个解决方案sso,该解决方

15、案包括5个项目分别为校园 的门户网站portal,单点登录公共组建ssocomponent,负责 用户登录、票据创建、验证和注销的单点登录服务 ssoserver,校园网内运行的财务管理系统app1,网上办公系 统app20在解决方案中将项日启动方式设置单项日启动,运 行时始终从portal的首页开始。当用户首次访问该portal 时,因为没有登录,通过forms验证重定向 sso_controller. aspx页面,使用形式远程调用单点登录系统 上石脚本,检验用户是否存在,若不存在定向用户登录 signin. aspx页面,获取登录信息,按预先设定的票据格式进 行构造并进行加密,将加密后信

16、息自动绑定到当前页表单的相 应字段并附加在cookie中,自动提交到后台。后台解密前台 提交的用户登录票据信息,返冋portal的首页,在这里你可 以访问该门户下的app1和app2o5结束语木文基于asp. net实现了 web的sso解决方案,该方案 使用成熟的net框架,利用已有的类和方法,实现数据交换 的安全,不仅减少了大量的代码编写工作,实现简单,还能保 证web应用系统的安全。实验结果表明,该sso解决方案对各 类应用系统的集成提供了统一的登录平台,只需登录一次就可 以进入多个系统,而不需要重新登录,这不仅仅带来了更好的 用户体验,更重要的是降低了安全的风险和管理的消耗。同时它易于

17、推广,具有很强的实用性,对推动高校信息化进程具有 积极的作用。参考文献:1 罗海涛,李心广.asp.net web应用程序安全策略j微计算机信息,2007,23 (3) : 6-89.2 许小东,沈上根基于asp. net的单点登录系统的研究与实现j嘉兴学院学报,2011,23 (3) : 90-94.3 王丽君.asp. net:基于form (窗体)的身份验证 方案j科技信息,2009 (3) : 476-477.4 王湘军基于ldap统一身份认证系统的研究d成 都:电子科技人学,23-34.5 左锋高校数字化校园统一身份认证技术研究d 重庆:重庆人学,2009.6 明日科技.asp. net从入门到精通(第3版)ml 北京:清华大学出版社,2012: 202-256.阅读相关文档:浅谈如何激发和培养学生学习vb编程的兴趣 基丁神经网络 的乳腺癌自动分类高等农业院校单片机课程教学的研究与讨论市场作为 导向大赛引领专业 基于任务驱动法的protel dxp 2004教学探讨java 课程实训教学改革研究物联网时

温馨提示

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

评论

0/150

提交评论