欢迎来到天天文库
浏览记录
ID:6073558
大小:29.50 KB
页数:7页
时间:2018-01-02
《基于oauth2.0单点登录系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于OAuth2.0单点登录系统 摘要:针对接入传统单点登录系统的第三方应用系统需要进行信誉度验证,以及传统单点登录系统必须在第三方系统保存用户名和密码等登录授权信息的缺陷,采用SAML协议与OAuth2.0协议相结合的方法,改进了令牌交换方式,设计了单点登录流程。最后在自建的实验平台上对该系统进行了黑盒测试,保证了各模块功能顺利投入使用,同时为平台下第三方应用系统的集中管理提供了便利。关键词:身份认证;OAuth;SAML;单点登录中图分类号:TP309文献标识码:A文章编号:1672-7800(2
2、014)003-0106-030引言随着互联网和企业信息化建设的快速发展,越来越多的第三方应用系统如雨后春笋般涌现。这些第三方应用系统独立存在,采用不同的操作系统平台、开发语言,拥有不同的验证服务器和用户信息数据库,需要维护多套用户信息,容易造成信息冗余与信息孤岛[1-2],使得各系统间无法集成,而且对用户来说,使用各个系统都需要进行重复登录,用户体验差。而传统单点登录系统要求必须在第三7方应用系统中保存用户名和密码等信息,这就要求保证对接入单点登录系统的第三方应用系统进行信誉度验证。OAuth的出现为
3、用户资源授权提供了一个安全、开放而又简易的标准,使第三方无需使用用户名与密码就可以申请获得该用户资源的授权,但OAuth关注的是授权,并不能单独用来做单点登录[3]。因此,本文结合SAML和OAuth2.0协议的优点,提出了一种基于OAuth2.0的单点登录系统,以保证系统认证和授权的安全性,解决用户认证繁琐冗余,可管理、可监控性差等问题,同时让新增业务更容易接入,增强系统的可扩展性。1OAuth2.0授权方式OAuth为客户端提供了一种通过访问令牌访问受保护资源的方法,OAuth2.0工作流程如图1所
4、示。具体流程如下:①客户端向资源拥有者(最终用户)请求授权,授权请求可直接发送给资源拥有者,或通过授权服务器间接发送;②资源拥有者为客户端授权,给客户端发送一个访问许可(AuthorizationCode);③客户端出示自己的私有证书(client_id和client_secret)和上一步拿到的访问许可,向授权服务器请求一个访问令牌;④授权服务器验证客户端私有证书和访问许可的有效性,如果验证有效,则向客户端发送一个访问令牌,包括许可的作用域、有效时间和其它属性信息;⑤客户端出示访问令牌向资源服务器请求
5、受保护资源;⑥资源服务器对访问令牌做出响应。72关键问题及技术实现2.1关键问题安全断言标记语言(SecurityAssertionMarkupLanguage,SAML)作为单点登录通信方式的开放标准,可根据需求设计灵活的安全细节[2][4-6],但SAML仅提供对Web浏览器的支持。OAuth协议可使网站和应用程序在无须透露用户名和密码的情况下,通过授权第三方网站来分享数据[3],同时支持Web应用、桌面应用、移动终端、家庭设备等客户端程序[3]。然而,OAuth关注的是授权部分,尚不能单一利用它来
6、做单点登录。如何在SOAP中传输SAML和OAuth2.0令牌,成为实现基于OAuth2.0单点登录要解决的首要问题。系统令牌交换过程采用了改进的OAuth2.0的AssertionFlow,用户试图访问应用服务器上的受保护资源时,应用服务器会将用户重定向到Idp服务器进行认证并获取认证结果。7单点登录流程如图2所示。具体流程如下:①用户访问应用服务器,请求服务;②应用服务器返回与其有信任关系的Idp服务器,供用户选择认证;③应用服务器向用户返回该Idp服务器的认证URL(包含认证请求);④用户访问Id
7、p服务器的地址;⑤Idp服务器若发现此用户之前未进行过有效认证,则要求用户进行身份认证,认证通过后,记录下此次认证凭证信息并生成认证凭据,作为受保护资源的服务提供者对此次认证的查询结果;⑥Idp将SAMLAssertion返回给用户,并以重定向方式返回给OAuthServer;⑦用户将SAMLAssertion送回给OAuthServer;⑧OAuthServer将SAMLAssertion送回给Idp服务器,并发出HTTP验证请求;⑨Idp服务器对该SAMLAssertion进行验证;⑩验证通过后,给
8、OAuthServer发出一个SAMLAssertion有效的HTTP响应;B11OAuthServer将该SAMLAssertion转换生成AccessToken;B12OAuthServer给用户返回一个AccessToken的HTTP响应;B13用户使用AccessToken访问应用服务器上的受保护资源;B14应用服务器处理该请求与AccessToken;B15应用服务器将认证结果返回给用户。2.2系统实现本文采用WebService
此文档下载收益归作者所有