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

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

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

什么是单点登录

单点登录 (Single Sign-On,简称SSO) 是一种身份验证机制,允许用户使用一组凭据(例如:用户名和密码)。

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

用户登录一次即可,就可以登录多个相关但独立的软件、系统或应用程序,而无需为每个系统重新登录。

 

为什么需要单点登录

SSO简化了用户的登录体验,避免了在每个系统中重复输入登录凭据的麻烦,提高了用户的满意度。

如下图所示:

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

阿里旗下有多个网站,比如:淘宝、天猫、聚划算…等等, 用户只需要登录一次,别的都无需重复登录。

单点登录,简化了用户在多个系统中的操作流程,节省了时间和精力,提高了生产力,也极大的提升了用户体验。

所以,很多大型网站,涉及到多个系统的场景,都会应用到单点登录。

 

单点登录系统

单点登录系统,经典都有CAS,全称是Central Authentication Service,是是由耶鲁大学开发的单点登录系统。

CAS通过票据交换的方式实现单点登录,支持多种编程语言和平台、CAS可以轻松地集成到现有的身份管理系统中。

CAS(Central Authentication Service)的实现确实包括三个核心组件:

如下图所示:
单点登录最全详解(图文全面总结)

1.CAS Server(CAS 服务器)

CAS服务器,负责处理用户的认证请求,并颁发票据(Ticket)给客户端,它验证用户的身份凭据(通常是用户名和密码),创建和管理会话,并负责处理票据的生成和验证。

2.CAS Client(CAS 客户端)

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

CAS客户端负责将用户重定向到CAS服务器以进行认证,接收和验证CAS服务器返回的票据,并基于票据创建或维护用户的会话。

3.Ticket(票据)

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

票据是CAS单点登录的核心机制之一,用于实现用户的身份认证和会话管理。

 

 

单点登录实现原理

CAS单点登录的实现,主要通过票据的交换和验证,CAS实现了用户在多个服务之间的单点登录。

如下图所示:

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

主要流程,大致如下:

1.认证过程:

  • 用户访问应用程序,并尚未登录。
  • 应用程序将用户重定向到CAS服务器。
  • CAS服务器要求用户提供身份验证凭据(如:用户名和密码)。
  • 用户提供凭据后,CAS服务器验证凭据的有效性。
  • 如果验证成功,CAS服务器会创建一个票据(Ticket),并将其发送回应用程序。
  • 应用程序使用票据去CAS服务器验证票据的有效性。

 

2.票据交换过程:

  • 应用程序收到票据后,向CAS服务器发送请求以验证票据。
  • CAS服务器验证票据,并返回给应用程序一个成功或失败的响应。
  • 如果验证成功,应用程序允许用户访问受保护的资源。

 

3.会话建立:

  • 如果票据验证成功,SP将创建一个本地会话并将用户标识为已认证状态,从而使用户可以访问受保护的资源。
  • 用户在该会话中可以自由访问应用程序的其他受保护资源,而无需再次进行认证。

 

单点登录应用场景

1.电商平台

在电子商务平台上,用户可能需要访问多个子系统,例如:阿里的天猫、淘宝、支付系统、客户服务…等。

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

2.企业内部

以及,在企业内部,员工可能需要访问多个系统,例如电子邮件、文档管理系统、人力资源系统等。

允许员工,通过一次登录访问企业内部的多个系统,如:邮箱、文件分享、人事管理系统等,提高员工工作效率。

3.云服务

以及,在使用云服务提供商提供的多个服务时,可以使用单点登录,实现统一的身份认证,简化用户的登录体验。

总之,使用单点登录,可以极大的简化的登录流程,提高工作效率,极大的提升用户体验。

作者简介

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

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

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

评论交流
    暂无讨论,说说你的看法吧