单点登录

作者: ktide | 来源:发表于2016-06-06 10:53 被阅读454次

单点登录

单点登录即SSO(Single Sign-On),是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不需要重新登录验证。

单点登录解决了什么问题

解决用户只需要登录偶一次就可以访问所有相互信任的应用系统,而不用重复登录。

单点登录的技术实现机制

alt

当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应用返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket总到认证系统进行校验,检查ticket的合法性(4,6)。如果通过校验,用户接可以在不用再次得了的情况下访问应用系统2和应用系统3了。

从上图可以看出SSO的实现技术点:

  • 所有应用系统共享一个身份验证系统
    统一的认证系统是SSO对的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行校验,判断其有效性。

  • 所有应用系统能够识别和提取ticket信息
    要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。

关于统一身份验证机制,如下图:

alt

①用户请求访问业务系统。
②业务系统在系统中查看是否有对应请求的有效令牌,若有,则读取对应的身份信息,允许其访问;若没有或令牌无效,则把用户重定向到统一身份认证平台,并携带业务系统地址,进入第③步。
③在统一身份认证平台提供的页面中,用户输入身份凭证信息,平台验证此身份凭证信息,若有效,则生成一个有效的令牌给用户,进入第④步;若无效,则继续进行认证,直到认证成功或退出为止。
④用户携带第③步获取的令牌,再次访问业务系统。
⑤业务系统获取用户携带的令牌,提交到认证平台进行有效性检查和身份信息获取。

⑥若令牌通过有效性检查,则认证平台会把令牌对应的用户身份信息返回给业务系统,业务系统把身份信息和有效令牌写入会话状态中,允许用户以此身份信息进行业务系统的各种操作;若令牌未通过有效性检查,则会再次重定向到认证平台,返回第③步。

通过统一身份认证平台获取的有效令牌,可以在各个业务系统之间实现应用漫游。

单点登录的优点

  • 提高用户效率
    用户不再被多次登录困扰,也不需要记住ID和密码。另外,用户忘记密码并求助于支持人员的情况也会减少。

  • 提高开发人员的效率
    SSO 为开发人员提供了一个通用的身份验证框架。实际上,如果SSO机制是独立的,那么开发人员就完全不需要为身份验证操心。他们可以假设,只要对应用程序的请求附带一个用户名,身份验证就已经完成了。

  • 简化管理
    如果应用程序加入了单点登录协议,管理用户账号的负担就会减轻。简化的程度取决于应用程序,因为SSO只处理身份验证。所以,应用程序可能仍然需要设置用户的属性(比如访问特权)。

单点登录的缺点

  • 不利于重构
    因为涉及的系统很多,要重构必须要兼容所有的系统,可能很耗时

  • 无人看守桌面

因为只需要登录一次,所有的授权的应用系统都可以访问,可能导致一些很重要的信息泄露。

相关文章

网友评论

  • sunny冲哥:有个疑问,我换上网的地方了,比如我在家里电脑登陆了,现在来公司,怎么在公司电脑登陆呢,如何携带这个ticket?
    sunny冲哥:@旋转马达 出门需要带上,貌似没有方便什么啊
    旋转马达:在家里把这个ticket揣在兜里,带到公司
  • ab40df3379f0:看了一天,写得最好的一篇

本文标题:单点登录

本文链接:https://www.haomeiwen.com/subject/juwrdttx.html