SSO认证原理

SSO(Single Sign On)单点登录系统。现在很多系统都由多个子系统组成,为了统一登录,保证登录一次,所有子系统都能访问,提升用户体验,SSO方案由此而生。

SSO原理

SSO系统是单独部署的一套认证系统,独立于所有子系统,包含登录认证、授权、用户管理功能。用户需要登录任意业务子系统时,都被重定向到认证中心,通过认证中心登录认证后,就会设置一个全局会话并重定向到子系统。子系统与验证中心通信验证Ticket的真伪,如果Ticket为真则将受保护资源返回给用户。


SSO认证流程

SSO流程

用户登录流程

    1. 用户浏览器访问系统A受保护资源,cookie中sessionID(局部会话)
    1. 系统A检测是否存在局部会话,如果存在则直接返回受保护资源
    1. 系统A将请求重定向到认证中心(重定向时需要指定callback)
    1. 认证中心检测是否存在全局会话(cookie中TGC是否存在)
      ** 4.1)如果全局会话存在,直接跳转步骤8
      ** 4.2)如果全局会话不存在,跳转步骤5
    1. 认证中心显示登录页面
    1. 用户在登录页面填好用户名和密码后,提交
    1. 认证中心检测用户名和密码是否匹配
    1. 认证中心重定向到系统A(参数附带ticket=TGC)
    1. 系统A将ticket提交到认证中心验证
    1. 认证中心返回ticket验证结果
    1. 如果ticket真实,系统A返回请求的资源;如果ticket假的,重复步骤3。

注:1、局部会话是指浏览器与子系统之间的会话,可以通过cookie或sessionID实现。 2、全局会话是指浏览器与认证中心之间的会话,通过TGC(Ticket Granting Cookie),TGC实际上是CAS系统中的一个概念,用于保存TGT(Ticket Granting Ticket)的ID,也就是说在传输过程中,都是传输的TGT的ID。

参考

app-sso 实现原来是怎样的?
《SSO CAS单点系列》之 实操!轻松玩转SSO CAS就这么简单(相识篇)
CAS实现单点登录SSO执行原理探究(终于明白了)
CAS 之自定义登录页实践
单点登录(SSO)的设计与实现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容