zoukankan      html  css  js  c++  java
  • 单点登录

     

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

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

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

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

    1、 单点登录,多点即可同时登录;

    2、 单点注销(退出登录),多点即可同时注销;

    3、 单点切换用户,多点即可同时切换;

    4、 单点登录过期,多点同时过期。

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

    1、一个用户在不同系统只有一个共同登录名和密码

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

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

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

    1、一个用户在不同系统有不同的登录名和密码

    2、不同的应用系统各自存储了独立的用户名和密码

    3、 应用系统采用不同的技术架构且域名后缀不同,甚至只有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

  • 相关阅读:
    SQL 启动服务方法
    SQL 2012 连接失败
    数据库 基本操作有哪些
    windows 计算机 管理 命令
    windows下编译使用NDK,调用SO文件
    windows 注册表命令
    spring @Transactional 声明式事务
    Set List Map
    bean 的各个属性
    util:
  • 原文地址:https://www.cnblogs.com/jinxiblog/p/7799537.html
Copyright © 2011-2022 走看看