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

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

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

CAS单点登录

CAS,全称是Central Authentication Service,是一种基于令牌的身份认证单点登录系统。

CAS是通过将用户的登录状态、和身份信息保存在一个中心化的认证服务器中,使用户只需要在其中一个应用中进行登录。

然后就可以访问与该认证服务器关联的其他应用,而无需重新输入凭证。

 

CAS单点登录价值

CAS单点登录,可以极大的提升用户体验。

比如:阿里有多个系统,淘宝、天猫、聚划算, 用户只需登录一次,即可在整个系统中访问,减少了频繁登录的麻烦,提高了用户体验。

如下图所示:

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

在阿里巴巴这样拥有多个子系统或产品的大型企业中,用户只需要登录一次即可,这样就更加高效了。

 

CAS单点登录实现

CAS单点实现,如下图所示:

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

1. CAS Server(CAS 服务器)

职责: 负责用户的身份验证和授权,管理用户的会话,并生成并管理令牌。

工作流程:

  1. 用户首次登录: 用户在某一个CAS受保护的应用中首次尝试登录。
  2. CAS服务器验证凭证: CAS服务器验证用户提供的凭证,通常是用户名和密码。
  3. 生成令牌和TGT: 验证成功后,CAS服务器为用户生成一个令牌,包含用户身份信息,并返回给CAS客户端。同时,CAS服务器生成一个TGT(Ticket Granting Ticket),作为用户会话的全局凭证。
  4. 返回令牌: CAS服务器将令牌返回给CAS客户端,使用户成为已登录状态。

2. CAS Client(CAS 客户端)

职责: 集成到应用程序中,处理用户的登录和CAS服务器的通信。

工作流程:

  1. 检查用户登录状态: 当用户尝试访问一个CAS受保护的应用时,CAS客户端检查用户是否已经登录。
  2. CAS重定向: 如果用户未登录,CAS客户端将用户重定向到CAS服务器以进行身份验证。
  3. 用户在CAS登录: 用户在CAS服务器上成功登录,CAS服务器返回一个令牌(ST)给CAS客户端。
  4. 使用ST进行验证: CAS客户端使用这个ST与CAS服务器进行验证。
  5. 获取TGT: 验证成功后,CAS客户端获取用户的TGT(Ticket Granting Ticket),用于后续的服务访问。

3. Service(受保护的应用)

职责: 表示用户想要访问的资源,每个Service都有一个唯一的标识符。

工作流程:

  1. 用户尝试访问Service: 用户通过CAS客户端尝试访问某个Service。
  2. CAS客户端获取ST: CAS客户端获取用户的ST,并将其与Service标识一起发送给CAS服务器。
  3. CAS服务器验证ST: CAS服务器接收到ST后,验证其有效性,并检查用户是否有权访问该Service。
  4. 授权用户访问: 如果验证成功,CAS服务器授予用户访问Service的权限,用户可以成功访问该Service。

这三个组件共同构成了SSO单点登录系统,通过这个系统,用户可以在多个应用之间实现一次登录,即可访问受保护的资源。

 

CAS单点登录的应用场景

1.电商平台

电商平台通常包含多个服务,如购物、支付、物流跟踪等,CAS单点登录可以简化用户在这些服务之间的切换。

2.企业内部

在企业内部,存在各种内部系统,如人事管理、文件共享、邮箱等。

CAS单点登录可以让员工通过一次登录,访问这些系统,提高工作效率。

3.在线系统

在在线服务平台,用户可能使用多个子服务,如:购物、社交、新闻等,CAS单点登录为用户提供了一次登录,全平台访问的便利性。

4.云服务

云服务提供商可以使用CAS单点登录,使用户只需在云平台上进行一次登录,即可管理和访问各种云服务。

作者简介

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

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

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

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧