ITPub博客

首页 > 应用开发 > Java > 单点登录系统详解(8大原理机制图解)

单点登录系统详解(8大原理机制图解)

Java 作者:带你聊技术 时间:2024-06-03 11:10:01 0 删除 编辑

来源:mikechen的互联网架构


单点登录(SSO)是大型架构必备技能,也是大厂重点考察对象,下面我就全面来详解单点登录


单点登录

单点登录,全称是Single-Sign-On,简称SSO,也就是说:用户只需在一个地方登录一次,即可访问多个相互信任的应用系统。

还是举一个例子,比如:阿里下面有很多应用,比如:淘宝、天猫、聚划算.....等等,如下所示:

如果有一种方式,登录一次,每一个子系统就都默认“登录”了,那对用户来讲,体验就会非常好。

这就是单点登录的“价值”,不仅,提高用户的使用便捷性,同时,也减少管理的负担。


单点登录实现原理

上面简要的谈了“单点登录”的价值,也知道了对于大型网站,单点登录的“重要性”。

下面,我们接着谈,如果是你,你应该怎么来实现“单点登录”呢?

单点登录的实现,一般会包含如下组件:

CAS Server(CAS 服务器)

CAS服务器是整个CAS体系的核心组件,负责:集中处理用户的身份认证、和票据的管理。

首先,是用户的身份验证。

比如:处理用户的登录请求,验证用户凭证(如:用户名、和密码),确保用户的身份真实性。

然后,生成和管理各种票据。

比如:用户通过CAS服务器登录后,CAS服务器生成一个Ticket作为认证凭证。

以及,单点登出。

管理用户的单点登出过程,确保用户在一个应用登出后,其他已登录的应用也同步登出,维持会话的一致性。

CAS Client(CAS 客户端)

CAS客户端是应用系统的一部分,负责与CAS服务器进行交互。

其主要作用包括:

  • 检查用户的登录状态,未登录时重定向到CAS服务器;

  • 接收并存储从CAS服务器返回的票据(ST);

  • 向CAS服务器验证ST,确认用户身份。


Ticket(票据)

票据在CAS体系中用于传递和验证用户身份信息,是CAS协议中的关键元素。

主要有两种票据:TGT(Ticket Granting Ticket)和ST(Service Ticket)。

  • TGT(Ticket Granting Ticket):长期票据,用户成功登录后,由CAS服务器生成并存储在用户会话中;

  • ST(Service Ticket):短期票据,用户访问特定服务时由CAS服务器生成,每个ST只能使用一次,验证后即失效。


总之,CAS Server、CAS Client、和Ticket协同工作,实现了用户一次登录,即可访问多个应用的功能。

单点登录工作流程

工作流程,大致分为如下步骤:

  1. 首先,用户访问应用A(CAS Client);

  2. 如果,应用A检测到用户未登录,将用户重定向到(CAS Server);

  3. 然后,用户在CAS Server上登录,CAS Server生成TGT,并返回ST;

  4. 然后,用户携带ST访问应用A,应用A向CAS Server验证ST;

  5. 然后,CAS Server验证成功后,应用A允许用户访问受保护资源;

  6. 然后,用户访问应用B(另一CAS Client),应用B将用户重定向到CAS Server;

  7. 然后,CAS Server检测到用户已通过TGT登录,直接生成新的ST并返回给用户;

  8. 最后,用户携带ST访问应用B,应用B验证ST后允许用户访问。

总之,单点登录是一种提升用户体验、和系统安全性的有效方式。

用户只需登录一次,即可访问多个应用系统,减少了重复登录的烦恼。

而且,还可以集中管理用户认证信息,便于统一安全策略的实施,还降低了维护成本。

以上


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70024922/viewspace-3017511/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-12-05

  • 博文量
    420
  • 访问量
    322572