cas单点登录场景

CAS单点登录,5.1.X

一、使用场景

现实使用中,很多系统只会维护一套用户信息,所使用的登录信息验证是一致的,这时,在一般情况下若在同一个浏览器中登录这些系统则需要每个系统登录一次,这样就造成了操作的复杂化,而且不便于账号管理。而cas则很好的解决了这一点。

HTTP 是无状态协议,客户端与服务端之间的每一次通讯都是独立的,而会话机制可以让服务端鉴别每次通讯过程中的客户端是否是同一个,从而保证业务的关联性。Session 是服务器使用一种类似于散列表的结构,用来保存用户会话所需要的信息。Cookie 作为浏览器缓存,存储 Session ID 以到达会话跟踪的目的。

三、CAS 流程

官方流程图:

  • 浏览器与 APP01 服务端 
    浏览器第一次访问受保护的 APP01 服务端,由于未经授权而被拦截并重定向到 CAS 服务端。 
    浏览器第一次与 CAS 服务端通讯,鉴权成功后由 CAS 服务端创建全局会话 SSO Session,生成全局会话标识 TGT 并存储在浏览器 Cookie 中。 
    浏览器重定向到 APP01,重写 URL 地址带上全局会话标识 TGT。 
    APP01 拿到全局会话标识 TGT 后向 CAS 服务端请求校验,若校验成功,则 APP01 会获取到已经登录的用户信息。 
    APP01 创建局部会话 Session,并将 SessionID 存储到浏览器 Cookie 中。 
    浏览器与 APP01 建立会话。

  • 浏览器与 APP02 服务端 
    浏览器第一次访问受保护的 APP02 服务端,由于未经授权而被拦截并重定向到 CAS 服务端。 
    浏览器第二次与 CAS 服务端通讯,CAS 校验 Cookie 中的全局会话标识 TGT。 
    浏览器重定向到 APP02,重写 URL 地址带上全局会话标识 TGT。 
    APP02 拿到全局会话标识 TGT 后向 CAS 服务端请求校验,若校验成功,则 APP02 会获取到已经登录的用户信息。 
    APP02 创建局部会话 Session,并将 SessionID 存储到浏览器 Cookie 中。 
    浏览器与 APP02 建立会话。

猜你喜欢

转载自blog.csdn.net/u014540082/article/details/89917078