单点登陆

 

SSO单一登陆(single sign-on),意思是指在多套系统并存的环境下,用户只需登陆一次便可访问其余受权的系统。html

提起SSO(单一登陆),大概企业里的IT人员无人不知,但真正意识到其复杂度的,未必有多少,只有亲身实施过的技术人员,也许才明白个中玄妙。本文基于蓝凌为国内几十家大中型企业的服务案例,针对SSO的相关技术和案例进行一些探讨,但愿能帮助到企业IT人员更深入理解SSO技术及其应用。浏览器

SSO是一把双刃剑SSO能够简化用户登陆过程,提高用户的登陆体验;同时能够下降IT管理员大量帐户和密码维护成本;SSO还提供了符合萨班斯法案的密码集中管理工具;但SSO同时也产生了一种安全风险,某一系统用户身份一旦被攻破,则意味着全部参与SSO网络的应用系统也被穿透。所以须要慎重考虑SSO的范围及安全级别的局限性。安全

 

SSO涉及不一样层面的需求:SSO的实质是多套系统可否识别同一用户的身份,并在各套系统间实时同步用户身份信息,以支持各套系统进行用户权限控制。基于这样的缘由,一套SSO技术至少应该考虑一下四个层面的需求:服务器

一、 单点登陆,多点便可同时登陆;cookie

二、 单点注销(退出登陆),多点便可同时注销;网络

三、 单点切换用户,多点便可同时切换;session

四、 单点登陆过时,多点同时过时。架构

 

现实环境中,一个最佳的SSO环境(整合代价最小)应该是:工具

一、一个用户在不一样系统只有一个共同登陆名和密码spa

二、各套应用系统共享一套用户名和密码信息

三、应用系统采用相同的技术架构且域名后缀相同

而一个最坏的SSO环境(整合代价最大)会体现为:

一、一个用户在不一样系统有不一样的登陆名和密码

二、不一样的应用系统各自存储了独立的用户名和密码

三、 应用系统采用不一样的技术架构且域名后缀不一样,甚至只有IP而无域名。

单点登陆的核心步骤

6.1  用户未登陆时访问子站一,子站一服务器检测到用户没登陆(没有本站session,由于没传过来session对应cookie),因而通知浏览器跳转到SSO服务站点,并在跳转的URL参数中带上当前页面地址,以便登陆后自动跳转回本页。

6.2  SSO服务站点检测到用户没有登陆,因而显示登陆界面。

  用户提交登陆请求到服务端,服务端验证经过,建立和帐号对应的用户登陆凭据(token)。

  而后,服务端通知浏览器把该token做为SSO服务站点的cookie存储起来,并跳转回子站一,跳回子站一的URL参数中会带上这个token。

6.3  浏览器在写SSO服务站点cookie后,跳转回子站一。

  子站一服务端检测到浏览器请求的URL中带了单点登陆的token,因而把这个token发到SSO服务站点验证。

  SSO服务端站点拿token解密出用户帐号,把帐号信息中容许子站一访问的部分返回给子站一。

  子站一根据返回的信息生成用户在本站的会话,把会话对应cookie写入浏览器,从而完成在本站的登入以及会话保持。以后用户访问再子站一时,都会带上这个cookie,从而保持在本站的登陆状态。

6.4  用户再访问子站二。子站二服务器检测到用户没登陆,因而通知浏览器跳转到SSO服务站点。

6.5  浏览器访问SSO服务站点时会带上上述6.2环节建立的token这个cookie。SSO服务站点根据该token能找到对应用户,因而通知浏览器跳转回子站二,并在跳转回去的URL参数中带上这个token。

6.6  子站二服务端检测到浏览器请求的URL中带上了单点登陆的token,因而又会走上述6.3对应步骤,完成用户在本站的自动登陆。

 

单点登陆时序图


 

文章详情来源:

http://blog.csdn.net/jljf_hh/article/details/50099135 单点登陆的三种实现技术

http://www.cnblogs.com/baibaomen/p/sso-sequence-chart.html

相关文章
相关标签/搜索