CAS单点登录详解(原理机制及应用场景)

CAS单点登录详解(原理机制及应用场景)-mikechen

CAS单点登录经常在大型网站被使用到,下面我就重点来详解CAS单点登录的原理机制与应用场景@mikechen

什么是单点登录

单点登录全称是Single Sign-On,简称 SSO,是一种身份验证和授权机制,允许用户在一次登录后,即可访问多个不同的应用程序或系统。

 

为什么需要单点登录

例如:阿里旗下有淘宝、天猫…等网站,用户一次操作或交易可能涉及到几十个子系统的协作。

如下图所示:

CAS单点登录详解(原理机制及应用场景)-mikechen

如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。

所以单点登录要解决的就是,用户只需要登录一次就可以访问所有相互信任的应用系统。

 

什么是CAS单点登录

CAS全称是Central Authentication Service,是一种单点登录的一种实现方式。

CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。

 

CAS单点登录的实现原理

1.CAS的核心组件

CAS 的核心组件包括:CAS Server、CAS Client、Service三大组件。

如下图所示:

CAS单点登录详解(原理机制及应用场景)-mikechen

1.CAS Server

CAS 服务器负责用户的身份验证和授权,生成并管理令牌。

用户首次登录时,CAS 服务器会验证用户的凭据,生成一个令牌,并在成功登录后返回给应用。

 

2.CAS Client

CAS 客户端集成到应用程序中,用于将用户重定向到 CAS 服务器进行登录,并在登录成功后,向 CAS 服务器验证令牌。

 

3.Service

Service 表示受保护的应用,用户想要访问的资源。每个 Service 都有一个唯一的标识符。

 

2.CAS的实现原理

CAS 主要是提供一个中心化的身份验证服务,允许用户在一次登录后,然后通过生成令牌(Ticket)来访问多个关联的应用,无需为每个应用都重新输入用户名和密码。

如下图所示:

CAS单点登录详解(原理机制及应用场景)-mikechen

CAS 的工作原理如下:

  1. 用户访问应用 A: 用户首次访问应用 A,并尚未进行登录,应用 A 检测到用户未登录,将用户重定向到 CAS 服务器。
  2. 重定向到 CAS 服务器: 应用 A 将用户重定向到 CAS 服务器的登录页面。
  3. CAS 登录: 用户在 CAS 登录页面中输入用户名和密码,CAS 服务器验证凭据的有效性,如果成功,生成一个令牌(Ticket)。
  4. 返回令牌给应用 A: CAS 服务器将令牌返回给应用 A,应用 A 使用令牌向 CAS 服务器请求用户信息,以确认用户身份。
  5. 访问其他应用: 用户现在已经在应用 A 中登录,并拥有有效的令牌,当用户访问其他应用 B 时,应用 B 发现用户未登录,将用户重定向到 CAS 服务器。
  6. 返回令牌给应用 B: 用户无需再次输入凭据,CAS 服务器直接返回令牌给应用 B。
  7. 应用 B 向 CAS 服务器验证令牌: 应用 B 向 CAS 服务器发送令牌,以验证用户的登录状态,如果令牌有效,CAS 服务器将响应用户信息。
  8. 用户访问其他应用: 用户继续访问其他关联的应用,不需要再次登录,因为 CAS 服务器会验证令牌并提供用户信息。

 

CAS单点登录应用场景

以下是一些常见的 CAS 单点登录应用场景:

1.电子商务平台

对于拥有多个关联网站或子品牌的电子商务公司,CAS 单点登录可以为用户提供在不同站点之间的无缝购物体验。

 

2.大型企业内部门户

在大型企业中,有许多内部应用,如人力资源系统、财务系统、协作工具等。

CAS 单点登录可以让员工通过一次登录访问所有这些应用,无需为每个应用都输入密码。

 

3.教育机构门户

学校或大学通常有多个校园门户和在线学习平台,CAS 单点登录可以让学生、教职员工在一次登录后,访问这些不同的平台,提高用户体验。

 

4.金融服务

金融机构通常提供多个在线服务,如个人银行、投资管理、保险,CAS 单点登录可以方便客户在这些服务之间切换。

陈睿mikechen

十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。

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

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

评论交流
    说说你的看法