大家好,欢迎来到IT知识分享网。
单点登录(SSO)是大型架构必备技能,也是大厂重点考察对象,下面我就全面来详解单点登录@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
单点登录
单点登录,全称是Single-Sign-On,简称SSO,也就是说:用户只需在一个地方登录一次,即可访问多个相互信任的应用系统。
还是举一个例子,比如:阿里下面有很多应用,比如:淘宝、天猫、聚划算…..等等,如下所示:
如果有一种方式,登录一次,每一个子系统就都默认“登录”了,那对用户来讲,体验就会非常好。
这就是单点登录的“价值”,不仅,提高用户的使用便捷性,同时,也减少管理的负担。
单点登录实现原理
上面简要的谈了“单点登录”的价值,也知道了对于大型网站,单点登录的“重要性”。
下面,我们接着谈,如果是你,你应该怎么来实现“单点登录”呢?
单点登录的实现,一般会包含如下组件:
1.CAS Server(CAS 服务器)
CAS服务器是整个CAS体系的核心组件,负责:集中处理用户的身份认证、和票据的管理。
首先,是用户的身份验证。
比如:处理用户的登录请求,验证用户凭证(如:用户名、和密码),确保用户的身份真实性。
然后,生成和管理各种票据。
比如:用户通过CAS服务器登录后,CAS服务器生成一个Ticket作为认证凭证。
以及,单点登出。
管理用户的单点登出过程,确保用户在一个应用登出后,其他已登录的应用也同步登出,维持会话的一致性。
2. CAS Client(CAS 客户端)
CAS客户端是应用系统的一部分,负责与CAS服务器进行交互。
其主要作用包括:
- 检查用户的登录状态,未登录时重定向到CAS服务器;
- 接收并存储从CAS服务器返回的票据(ST);
- 向CAS服务器验证ST,确认用户身份。
3.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协同工作,实现了用户一次登录,即可访问多个应用的功能。
单点登录工作流程
工作流程,大致分为如下步骤:
- 首先,用户访问应用A(CAS Client);
- 如果,应用A检测到用户未登录,将用户重定向到(CAS Server);
- 然后,用户在CAS Server上登录,CAS Server生成TGT,并返回ST;
- 然后,用户携带ST访问应用A,应用A向CAS Server验证ST;
- 然后,CAS Server验证成功后,应用A允许用户访问受保护资源;
- 然后,用户访问应用B(另一CAS Client),应用B将用户重定向到CAS Server;
- 然后,CAS Server检测到用户已通过TGT登录,直接生成新的ST并返回给用户;
- 最后,用户携带ST访问应用B,应用B验证ST后允许用户访问。
总之,单点登录是一种提升用户体验、和系统安全性的有效方式。
用户只需登录一次,即可访问多个应用系统,减少了重复登录的烦恼。
而且,还可以集中管理用户认证信息,便于统一安全策略的实施,还降低了维护成本。
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/109221.html