五张图看懂单点登入
1.术语和缩写
术语/缩写 |
含 义 |
单点登录( Single Sign On , 简称 SSO ) |
目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统 |
CAS |
(Central Authentication Service 统一认证服务)是实现SSO的一个比较成熟的开源框架。包括两部分:CAS Server 和 CAS Client |
CAS Server |
负责完成对用户的认证工作 , 需要独立部署 , CAS Server 会处理用户名 / 密码等凭证 |
CAS Client |
负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源 |
TGC |
存放用户身份认证凭证的cookie(TGT对象的ID),存在浏览器端,是CAS Server用来明确用户身份的凭证 |
TGT |
(Ticket Grangting Ticket)CAS为用户签发的登录票据,拥有了TGT,用户就可以证明自己在CAS成功登录过。TGT封装了Cookie值以及此Cookie值对应的用户信息。用户在CAS认证成功后,CAS生成一个TGT对象,放入自己的缓存;同时,生成cookie即TGC,写入浏览器,TGT对象的ID就是cookie的值。当HTTP再次请求到来时,如果传过来的有CAS生成的cookie,则CAS以此cookie值为key查询缓存中有无TGT,如果有的话,则说明用户之前登录过,如果没有,则用户需要重新登录 |
ST |
(Service Ticket)ST是CAS为用户签发的访问某一service的票据。用户访问service时,service发现用户没有ST,则要求用户去CAS获取ST。用户向CAS发出获取ST的请求,如果用户的请求中包含cookie,则CAS会以此cookie值为key查询缓存中有无TGT,如果存在TGT,则用此TGT签发一个ST,返回给用户。用户凭借ST去访问service,service拿ST去CAS验证,验证通过后,允许用户访问资源 |
2.请求流转图
2.1 首次登入
2.2 登入后,首次登入其他服务
2.3 进入已登入组件
2.4 登出