单点登录技术详解(图文全面总结)

单点登录是大型架构的必备技能,下面我就重点来详解单点登录@mikechen

单点登录

单点登录(Single Sign-On, SSO)是现代企业应用和互联网服务的基石,它极大提升了用户体验。

单点登录技术详解(图文全面总结)

只需登录一次,即可无缝访问多个相互信任的应用系统,无需重复输入凭据。

SSO的本质是:跨系统共享认证信息,核心在于登录凭证的可信传递、和验证机制

 

单点登录技术

SSO(单点登录)的核心,是一个身份验证和授权的协作机制。

其核心思想是:将用户的认证操作集中到一个独立的认证中心,由认证中心负责用户身份验证。

并将认证结果传递给各个子系统,从而实现一次登录,全站通行

整体实现架构,如下图所示:

单点登录技术详解(图文全面总结)

包含如下核心组件:

角色 核心职责
CAS Server 用户身份认证、生成与验证 TGT/ST、统一登录登出
CAS Client 拦截未登录请求、重定向认证、校验 ST、建立本地会话
User Agent 发起请求、自动携带 TGT Cookie、重定向流转

CAS Server (认证中心/IdP)

唯一的认证服务器,负责用户身份验证、TGT 和 ST 的生成、管理及验证。

它通常拥有一个统一的登录页面。

CAS Client (客户端/SP)

集成 CAS 认证协议的各个应用系统,负责将未认证的请求重定向到 CAS Server,并验证 CAS Server 返回的 ST。

User Agent (用户代理)

用户的浏览器。

整体流程,如下所示:

[浏览器] ---> 请求业务系统A
    |
    v
[业务系统A] -- 未登录 --重定向--> [CAS Server登录页面]
    |
    v
[用户输入凭证] --校验成功--> [CAS Server生成 TGT & ST]
    |
    v
[浏览器] <--带ST回跳-- [CAS Server]
    |
    v
[业务系统A验证ST] --> [CAS Server]
    |
    v
[业务系统A建立本地Session,用户登录成功]
  1. 用户访问业务系统A,系统发现未登录,重定向到CAS认证中心登录页(带上业务系统地址)。

  2. 用户在CAS中心登录成功,CAS生成TGT(存Cookie)和ST(服务票据)。

  3. CAS带ST重定向回业务系统A。

  4. 业务系统A用ST去CAS验证票据,验证成功后建立本地登录状态。

  5. 用户访问其他业务系统,重复步骤1-4,但因已有TGT,无需再次登录,直接签发ST。

这样实现了一次登录,多系统免登录的单点登录体验。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧