大厂面试真题-什么是CAS单点登录?什么原理

CAS(Central Authentication Service,中央认证服务)单点登录(SSO,Single Sign-On)的原理主要基于统一的认证机制和票据验证过程,使得用户只需在多个相互信任的应用系统中登录一次,即可访问所有这些系统。

CAS是一个开源的、企业级单点登录解决方案,它由耶鲁大学发起,旨在为Web应用系统提供一种可靠的单点登录方法。CAS在2004年12月正式成为JA-SIG(现在称为Apereo)的一个项目,并且一直在不断发展和完善。

CAS框架主要包括两个部分:CAS Server和CAS Client。

  • CAS Server:这是一个需要独立部署的Web应用,主要负责完成对用户的认证工作。它会处理登录时的用户凭证(如用户名和密码)信息,这些信息可以从数据库、XML文件、LDAP服务器等多种来源检索。CAS Server在认证成功后,会生成一个唯一的、不可伪造的Service Ticket,并缓存以备将来验证。
  • CAS Client:这部分负责与受保护的客户端应用部署在一起,以Filter方式保护受保护的资源。当有访问本地Web应用中受保护资源的请求,并且该请求需要身份认证时,CAS Client会检查Http请求中是否包含有效的Service Ticket。如果没有,它会将请求重定向到CAS Server进行认证。

CAS框架的优点包括:

  1. 提高用户效率:用户只需登录一次,即可访问所有相互信任的应用系统,无需记忆多个登录名和密码。
  2. 提高开发效率:开发人员在新建项目时,无需考虑开发用户体系,可以专注于业务逻辑的实现。
  3. 提高运维效率:运维人员无需维护管理多个用户账号表,简化了用户管理工作。

此外,CAS框架还提供了灵活的认证接口和可扩展性,支持多种客户端和认证方式。它已经成为许多企业业务整合的首选解决方案之一。

以下是CAS单点登录原理的详细解释:

一、CAS架构

CAS单点登录系统主要由CAS Server(认证服务器)和CAS Client(客户端应用)两部分组成:

  • CAS Server:负责用户的认证工作,存储用户的认证信息,并生成和验证票据(Ticket)。
  • CAS Client:需要接入CAS Server的应用系统,用户在访问这些系统时,若未认证,则会被重定向到CAS Server进行认证。

二、单点登录流程

  1. 用户首次访问CAS Client
    • 用户尝试访问某个CAS Client(如购物网站shopping.com)的受保护资源。
    • CAS Client检查用户是否已认证(通常通过检查HTTP请求中是否携带了有效的票据或Cookie)。
    • 如果用户未认证,CAS Client将用户重定向到CAS Server的登录页面。
  2. 用户登录CAS Server
    • 用户在CAS Server的登录页面输入用户名和密码。
    • CAS Server验证用户名和密码的正确性。
    • 如果验证成功,CAS Server会为用户生成一个全局的票据(如Ticket Granting Ticket, TGT),并在用户的浏览器中设置一个Ticket Granting Cookie(TGC)。
    • 同时,CAS Server还会为用户生成一个针对当前CAS Client的访问票据(Service Ticket, ST),并将ST和TGC一起返回给用户浏览器。
  3. 用户访问CAS Client
    • 用户浏览器携带ST和TGC再次访问CAS Client。
    • CAS Client将ST发送给CAS Server进行验证。
    • CAS Server验证ST的有效性,并确认用户已认证且有权访问该CAS Client。
    • 验证通过后,CAS Client为用户创建会话(Session),并允许用户访问受保护资源。
  4. 用户访问其他CAS Client
    • 当用户尝试访问另一个CAS Client(如支付网站pay.com)时,流程与首次访问类似。
    • 但由于用户的浏览器中已存储了TGC,CAS Server可以通过TGC找到对应的TGT,从而无需用户再次输入用户名和密码即可为用户生成新的ST。
    • 新生成的ST用于访问新的CAS Client,实现单点登录。

三、单点登录原理总结

CAS单点登录的原理主要基于以下几点:

  • 统一的认证中心:CAS Server作为统一的认证中心,负责所有CAS Client的用户认证工作。
  • 票据机制:通过TGT、TGC和ST等票据机制,实现用户认证状态的跨系统共享和验证。
  • Cookie与Session结合:利用浏览器Cookie存储TGC,实现用户认证状态的持久化;在CAS Client端使用Session存储用户信息,实现用户会话管理。
  • 重定向机制:通过重定向机制将用户引导至CAS Server进行认证,并将认证结果返回给CAS Client。

CAS单点登录的优点在于它实现了统一的认证管理,提高了用户体验和系统的安全性。同时,CAS Server可以集中管理用户的认证状态,提供了更好的管理性和可扩展性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值