SSO最全详解(5大SSO单点登录原理图解)

SSO最全详解(5大SSO单点登录原理图解)-mikechen

单点登录是非常核心的分布式系统,比如阿里等大型网站都会涉及到,下面我就全面来详解单点登录@mikechen

什么是SSO

SSO,全称是Single-Sign-On,翻译过来就是单点登录,是一种身份验证机制。

如下图所示:

SSO最全详解(5大SSO单点登录原理图解)-mikechen

采用SSO后,用户只需进行一次登录,即可访问多个系统,而无需在每个系统中都进行单独的登录。

 

为什么需要SSO

采用SSO单点登录后,用户只需记住一个凭据,即可访问多个系统,减少了用户需要记住多组用户名和密码的负担。

如下图所示:

SSO最全详解(5大SSO单点登录原理图解)-mikechen

登录一次后,阿里旗下的淘宝、天猫..等多个网站,就无需再登录了,因此,SSO简化了用户在多个系统间的操作流程。

此外,SSO系统通常实施更严格的身份验证和访问控制,比如:集中身份验证使得监控和管理用户,提高了系统的安全性。

所以,这些好处,极大的减少了重复登录所需的时间,也提升了用户的使用体验。

所以,以阿里、淘宝等为代表的大型网站,很多都会涉及到使用:SSO。

 

SSO单点登录系统

SSO的实现方式有很多,大部分的实现原理都类似,这里我以CAS为例,来讲解具体的SSO的实现。

CAS,全称是Central Authentication Service,翻译过来就是中央统一认证登录,是一个开源的单点登录实现。

CAS通过集中式的身份认证服务器来管理用户的登录状态,并允许用户使用单一的登录凭据。

比如:通过用户名、密码,来访问多个相关但独立的应用程序或服务。

如下图所示:

SSO最全详解(5大SSO单点登录原理图解)-mikechen

统一认证通过:集中管理用户的身份认证信息、和提供统一的登录界面,为用户提供了便捷、安全的登录体验。

认证内容,主要包含如下4点:

  1. 单一登录凭据: 用户只需要记住一个用户名和密码,即可访问多个相关的应用程序,无需在每个应用程序中单独登录。
  2. 集中管理认证信息: 用户的认证信息,如:用户名、密码等被集中管理在认证服务器中,保证了认证信息的一致性和安全性。
  3. 统一登录界面: 提供一个统一的登录界面或登录页面,用户可以通过该界面输入登录凭据进行认证,而不用为不同的应用程序输入不同的凭据。
  4. 会话管理: 统一认证系统负责管理用户的会话状态,包括:会话的创建、销毁和管理,以确保用户在登录后能够持续访问受保护的资源。

 

SSO实现原理

整体实现,如下图所示:

SSO最全详解(5大SSO单点登录原理图解)-mikechen

CAS,包含3大核心组件:

1.CAS Server(CAS服务器)

CAS服务器负责处理用户的认证请求,并颁发票据(Ticket)给客户端。

用户登录后,CAS服务器验证用户的身份,颁发一个票据给客户端。

 

2.CAS Client(CAS客户端)

CAS客户端是需要集成CAS认证的应用程序或服务提供者(Service Provider,SP)。

CAS客户端接收并验证CAS服务器返回的票据,然后建立用户会话。

 

3.Ticket(票据)

票据是CAS系统中用于表示认证成功的凭据。

CAS服务器颁发的票据可以是不同类型的,例如:Service Ticket(用于标识用户与特定服务之间的关联)和Proxy Ticket(用于代理认证)。

 

实现流程,包含如下5大流程:

1.请求重定向

用户访问需要认证的应用程序(Service Provider,SP)。

SP检测到用户未认证,将用户重定向到CAS服务器的登录页面。

 

2.用户认证

用户在CAS服务器的登录页面输入其凭据(通常是用户名和密码)进行认证。

CAS服务器验证用户的凭据的有效性。

 

3.票据颁发

认证成功后,CAS服务器生成并返回一个票据(Ticket)给SP。

票据可以是Service Ticket(ST)或Proxy Ticket(PT),具体取决于CAS服务器的配置和需求。

 

4.票据验证

SP接收到票据后,向CAS服务器发送验证票据的请求。

SP将票据一并发送给CAS服务器进行验证。

 

5.建立会话

CAS服务器验证票据的有效性。

如果票据有效,CAS服务器通知SP用户已经通过认证,SP建立用户会话,用户可以访问受保护的资源。

这五个流程共同构成了CAS单点登录的工作流程,用户只需要进行一次认证,通过票据交换实现了在多个相关系统间的单点登录。

 

SSO应用场景

使用最多就是,刚才我提到的:电子商务平台上,如下所示:

SSO最全详解(5大SSO单点登录原理图解)-mikechen

比如:淘宝、天猫..等,还有购物、支付系统、客户服务…,通过SSO技术,用户只需一次登录,即可在不同的子系统间无缝切换。

还有,就是云服务提供商,用户需要分别登录每个服务,通过SSO技术,用户只需一次登录,即可访问所有云服务。

总的来说,SSO技术可以在各种场景下提供便捷、安全的身份认证和访问管理服务,提高了用户体验和工作效率,降低了系统管理和维护成本。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法