首页 > 其他分享 >【知识科普】统一身份认证CAS

【知识科普】统一身份认证CAS

时间:2024-11-20 21:15:35浏览次数:3  
标签:登录 CAS 系统 用户 认证 Server 科普

什么是CAS

综合概述

统一身份认证CAS(Central Authentication Service),即中央认证服务,是由耶鲁大学发起的一个企业级开源项目。它是一个用于身份验证的开源框架,为Web应用系统提供了一种可靠的SSO(单点登录)解决方案。以下是对统一身份认证CAS的详细解析:

一、CAS概述

CAS主要用于为Web应用程序创建和维护单点登录会话,采用Java语言编写,使用Apache-2.0协议。它提供了一个安全可靠的方式来验证用户的身份,并且可以集成到各种Web应用程序中。通过CAS,用户可以在多个应用系统之间共享登录状态,只需登录一次,即可在多个应用系统之间自由切换,大大提高了用户的使用体验和便利性。

二、CAS的组成与工作原理

CAS由CAS Server和CAS Client两部分组成:

  1. CAS Server:单点验证服务器,负责验证用户的身份,并生成会话令牌。该令牌可以由其他应用程序用于验证用户的身份。
  2. CAS Client:共享CAS Server登录态的客户端。当用户通过浏览器访问CAS Client提供的服务资源时,CAS Client会判断用户是否已登录。若未登录,则会将用户重定向到CAS Server进行身份验证。

CAS的工作原理如下:
cas-seq

    1. 用户通过浏览器访问CAS Client的某个服务资源。
    1. CAS Client判断用户需要进行身份认证时,会携带service参数(指向用户原访问的页面)返回302状态码,指示浏览器重定向到CAS Server。
    1. 浏览器携带service参数重定向到CAS Server。
    1. CAS Server获取并校验用户cookie中携带的TGC(Ticket Granting Cookie)。若成功,则身份认证成功;否则,将用户重定向到CAS Server提供的登录页面,由用户输入用户名、密码进行身份验证。
    1. 若用户之前已登录过系统,CAS Server可以获取用户的TGC,并根据TGC获取TGT(Ticket Granting Ticket)。若用户首次登录,则CAS Server会首先生成TGT。每次验证时,CAS Server会根据TGT签发一个ST(Service Ticket),然后把ST拼接到service中,同时将相应的TGC设置到用户cookie中,并返回302状态码,指示浏览器重定向到service。
    1. 浏览器存储TGC,并携带ST重定向到service。
    1. CAS Client取得ST后,会向CAS Server请求验证该ST的有效性。
    1. 若CAS Server验证该ST有效,则告知CAS Client该用户有效,并返回用户信息。CAS Client获取用户信息后,可以使用session的形式管理用户会话。后续的交互请求无需再重定向到CAS Server,CAS Client直接返回用户请求的资源即可。

三、CAS的特性与支持

CAS构建于Spring Boot或Spring Cloud之上,支持多种协议和身份验证机制。其主要特性包括:

  1. 支持CAS v1、v2和v3协议,以及SAML v1和v2协议、OAuth v2协议、OpenID & OpenID Connect协议等。
  2. 支持通过JAAS、LDAP、RDBMS、X.509、Radius、SPNEGO、JWT、Remote、Trusted、BASIC、Apache Shiro、MongoDb、Pac4J等组件进行身份验证。
  3. 支持将身份验证委派至WS-FED、Facebook、Twitter、SAML IdP、OpenID、OpenID Connect、CAS等服务来完成。
  4. 支持通过ABAC、Time/Date、REST、Internet2的Grouper等进行授权控制。
  5. 支持通过Hazelcast、Ehcache、JPA、Memcached、Apache Ignite、MongoDb、Redis、DynamoDb、Couchbase等工具进行HA集群部署。
  6. 借助JSON、LDAP、YAML、JPA、Couchbase、MongoDb、DynamoDb、Redis等工具支持的应用程序注册。
  7. 支持通过Duo Security、YubiKey、RSA、Google Authenticator等进行多因子身份验证。

四、CAS的应用场景

CAS广泛应用于需要实现单点登录、统一身份认证和权限管理的场景中。例如:

  1. 统一身份认证:CAS可以集中管理多个应用的身份认证,用户只需登录一次,就可以在所有应用中共享登录状态。
  2. 单点登录:CAS可以实现单点登录功能,用户在一次登录后,在其他应用中自动登录。
  3. 多系统权限控制:CAS可以集中管理用户的权限信息,实现对多个系统的统一权限控制。
  4. 多系统用户管理:CAS可以集中管理用户信息,包括用户的基本信息、角色和权限等。
  5. 跨域认证:CAS可以实现跨域认证功能,允许不同域名的应用之间共享用户登录状态。
  6. 多租户应用:CAS可以支持多租户应用场景,通过配置不同的租户标识来实现不同租户之间的身份认证和权限控制。

综上所述,统一身份认证CAS作为一种高效、安全的身份验证框架,在企业级应用中具有广泛的应用前景和重要的价值。

示例展示

以下是一个实际的例子,用于说明CAS(Central Authentication Service)的认证过程:

场景设定

假设有一个大学,其内部有多个Web应用系统,如人事系统、研究生系统、科研系统等。这些系统需要实现单点登录,即用户只需在一个系统中登录一次,就可以在其他系统中自由切换而无需再次登录。为了实现这一目标,大学决定采用CAS作为统一身份认证解决方案。

CAS认证过程

  1. 用户访问系统

用户通过浏览器访问其中一个系统,如研究生系统(graduate.example.edu)。此时,系统检测到用户未登录,因此需要进行身份认证。

  1. 重定向到CAS Server

研究生系统(CAS Client)将用户重定向到CAS Server(如cas.example.edu)进行登录。重定向时,会携带一个service参数,该参数指向用户原访问的页面(即研究生系统的某个页面)。

  1. CAS Server身份认证

    • 用户到达CAS Server的登录页面,输入用户名和密码进行登录。
    • CAS Server验证用户的用户名和密码。如果验证成功,CAS Server会生成一个TGT(Ticket Granting Ticket)和一个TGC(Ticket Granting Cookie)。TGT是用户的认证票根,包含用户的认证身份、有效期等信息,并存储在CAS Server中。TGC则存储在用户的浏览器中,用于后续的身份验证。
  2. 生成ST并重定向回系统

    • CAS Server根据TGT生成一个ST(Service Ticket),这是一个一次性票据,用于CAS Client与CAS Server之间的交互。
    • CAS Server将ST拼接到service参数中,并将TGC设置到用户的cookie中。然后,CAS Server将用户重定向回原访问的页面(即研究生系统的某个页面),同时携带ST作为参数。
  3. CAS Client验证ST

    • 研究生系统(CAS Client)取得ST后,会向CAS Server请求验证该ST的有效性。
    • CAS Server验证ST的有效性。如果验证成功,CAS Server会告知研究生系统该用户有效,并返回用户信息(如学号、姓名等)。
  4. 用户会话管理

    • 研究生系统获取用户信息后,可以使用session的形式管理用户会话。后续的交互请求无需再重定向到CAS Server,研究生系统直接返回用户请求的资源即可。
    • 如果用户后续访问其他系统(如人事系统、科研系统等),这些系统也会进行类似的认证过程。但由于用户已经在CAS Server上登录过,因此这些系统可以直接通过CAS Server验证用户的身份,而无需用户再次输入用户名和密码。
  5. 单点注销

    • 当用户在一个系统中注销时(如研究生系统),该系统会通知CAS Server用户已注销。
    • CAS Server会删除与该用户相关的TGT和TGC。
    • 同时,CAS Server会通知所有已登录过的系统(如人事系统、科研系统等),要求它们也注销该用户的会话。
    • 这样,用户在其他系统中的会话也会被销毁,实现单点注销的功能。

通过以上步骤,CAS实现了在多个Web应用系统之间的单点登录和统一身份认证。用户只需在一个系统中登录一次,就可以在其他系统中自由切换而无需再次登录。同时,CAS还提供了单点注销的功能,确保用户在一个系统中注销后,在其他系统中的会话也会被销毁。

其他认证细节

CAS认证过程的细节

  1. 协议与认证机制

    CAS支持多种协议和认证机制,包括CAS协议本身、OAuth、SAML等。这使得CAS可以与各种不同的Web应用程序集成,实现单点登录的功能。在认证过程中,CAS会根据用户的选择和系统的配置,采用相应的协议和认证机制进行身份验证。

  2. 票据的管理与验证

    CAS使用票据(Ticket)来管理用户的认证状态和授权信息。票据包括TGT(Ticket Granting Ticket)和ST(Service Ticket)两种。TGT是用户的认证票根,存储在CAS Server中,用于生成ST和验证用户的身份。ST是一次性票据,用于CAS Client与CAS Server之间的交互,验证用户的授权状态。在认证过程中,CAS Server会生成并管理这些票据,确保它们的安全性和有效性。

  3. 会话管理

    CAS实现了会话管理的功能,用于跟踪用户的登录状态和会话信息。当用户登录时,CAS Server会创建一个会话,并生成相应的TGT和TGC。在后续的请求中,CAS Client会使用TGC来查找相应的TGT,从而验证用户的身份和授权状态。同时,CAS还支持会话超时、会话固定等安全特性,确保用户会话的安全性和稳定性。

  4. 多因素认证

    为了提高安全性,CAS还支持多因素认证。多因素认证是指除了用户名和密码之外,还需要用户提供其他形式的认证信息(如手机验证码、指纹识别等)才能登录系统。这可以有效防止恶意攻击和未经授权的访问。

  5. 部署与配置

    CAS的部署和配置相对简单。它可以基于Spring Boot或Spring Cloud等框架进行构建和部署,支持多种数据库和缓存技术。同时,CAS还提供了丰富的配置选项和API接口,方便用户根据实际需求进行定制和扩展。

CAS认证过程的特性

  1. 可靠性

    CAS作为一个企业级开源项目,经过了多年的发展和完善,已经成为了一种可靠的SSO解决方案。它采用了多种安全技术和机制,确保用户身份的安全性和认证过程的可靠性。

  2. 灵活性

    CAS支持多种协议和认证机制,可以与各种不同的Web应用程序集成。同时,它还提供了丰富的配置选项和API接口,方便用户根据实际需求进行定制和扩展。这使得CAS具有很高的灵活性和可扩展性。

  3. 易用性

    CAS的部署和配置相对简单,用户可以通过简单的配置和部署即可实现单点登录的功能。同时,CAS还提供了友好的用户界面和操作指南,方便用户进行使用和管理。

  4. 安全性

    CAS采用了多种安全技术和机制来确保用户身份的安全性和认证过程的可靠性。它支持多因素认证、会话管理、数据加密等安全特性,可以有效防止恶意攻击和未经授权的访问。

综上所述,CAS认证过程是一个复杂而精细的过程,它涉及多个组件和步骤的协同工作。通过采用多种安全技术和机制,CAS确保了用户身份的安全性和认证过程的可靠性。同时,CAS还支持多种协议和认证机制、具有灵活性和可扩展性、易用性和安全性等特点,使得它成为了一种广泛应用的SSO解决方案。

参考文献

小白也能看懂的OAuth2讲解

标签:登录,CAS,系统,用户,认证,Server,科普
From: https://blog.csdn.net/wendao76/article/details/143863811

相关文章

  • Ingress Nginx基本认证
    IngressNginx基本认证1.使用htpasswd工具创建生成nginx认证用户1.安装htpasswd工具#yuminstallhttpd-y2.使用htpasswd工具生成测试用户名和密码#htpasswd-cauthadminNewpassword:Re-typenewpassword:Addingpasswordforuseradmin​#lsauthauth#c......
  • ScrumMaster认证机构及CSM、PSM、RSM价值解析
    近十年Scrum在国内备受关注,成为一种最流行的现代敏捷工作方式。ScrumMaster这一独特的角色,在企业内部推动Scrum落地的过程中越来越重要。各种ScrumMaster认证课程也蜂拥而至,甚至鱼目混珠。我们为大家梳理了目前市面上出现的ScrumMaster认证,感兴趣的小伙伴们,可以了解各个机构的背......
  • CISAW- CDF 认证电子数据取证训练课程内容
    课程内容:第一部分:电子数据基本理论与数据恢复概述,涵盖了电子数据分类、电子数据取证、国内外发展现状、人员的素质要求以及发展趋势等若干方面。第二部分:电子数据取证原则与流程,包含了法律法规、相关立法及规定、与其他证据的区别、电子数据审查体系、电子数据取证标准等多个......
  • 为什么casualty的意思和它的词根casual毫无关系呢?
    以下整理自知乎用户ycEdlL的回答:casual是14世纪诞生的词,casualty是15世纪开始使用,casualty是由casual演变来的或者由causal得来的一个名词。起初意思差不多,但是后来慢慢不一样了。其实仔细研究还是有关联的:casual14世纪主要意思是无规律,偶然,不确定,bychance,byaccident,中......
  • 新版华为认证全套资料(题库试题、知识点速记、考试大纲、思维导图、面试宝典)
    话不多说,直接上硬菜!一、HCIA、HCIP题库试题华为认证考试题型有单选、多选、判断、填空、拖拽题,每种题型常考什么知识点,各种知识点又会以什么样的方式去考察,都需要我们在不断刷题练习中去熟悉!HCIA题库试题:1、以下关于路由器的描述,说法错误的是?()A、路由器可以作为网关设备......
  • 11月16日,工信部人才交流中心 & CUUG - PGCP / PGCM认证考试完成!
    2024年11月16日,由工业和信息化部人才交流中心与北京神脑资讯技术有限公司共同举办的PostgreSQL管理员岗位能力认证考试(PGCP中级/PGCM高级)完成。 中级PG认证专家-PGCP(PostgreSQLCertifiedProfessional):是对PostgreSQL数据库技术能力的一种认可,达到了专家级别,可以对PostgreSQ......
  • GESP2023年12月认证C++四级( 第一部分选择题(11-15))
    ......
  • GESP2023年12月认证C++四级( 第二部分判断题(1-5))
    ......
  • 基于 FMEA 的质量标准与国际认证体系的融合与对接
    【大家好,我是唐Sun,唐Sun的唐,唐Sun的Sun。】摘要:本文深入探讨了基于FMEA(失效模式及后果分析)的质量标准与国际认证体系(如ISO等)的融合与对接。阐述了它们之间的关系、融合的必要性和优势,分析了在融合与对接过程中面临的挑战,并提出了相应的解决策略,以促进企业质量管理水平的提......
  • 【网络安全】身份认证
    1. 身份认证1.1定义身份认证(Authentication)是确认用户身份的过程,确保只有授权的用户才能访问系统或资源。它通常涉及验证用户提供的凭证,如密码、生物特征或其他识别标志。1.2重要性身份认证是信息安全的第一道防线,对于保护数据不被未授权访问至关重要。在数字化时代,随着......