IAM单点登录之CAS协议分析

一、CAS协议介绍

集中式认证服务(Central Authentication Service,简称CAS)是一种针对web应用的单点登录协议,旨在为 Web 应用系统提供一种可靠的单点登录方法,它允许一个用户访问多个应用程序,而只需向认证服务器提供一次凭证(如用户名和密码)。这样用户不仅不需在登陆web应用程序时重复认证,而且这些应用程序也无法获得密码等敏感信息。“CAS”也指实现了该协议的软件包。

发展历史

CAS最初由耶鲁大学的Shawn Bayern开发实现,后来由耶鲁大学的Drew Mazurek维护。CAS1.0实现了单点登录。 CAS2.0引入了多级代理认证(Multi-tier proxy authentication)。CAS其他几个版本已经有了新的功能。

2004年12月,CAS成为Jasig的一个项目,2008年该组织负责CAS的维护和发展。CAS原名“耶鲁大学CAS”,现在则被称为“Jasig CAS”。

2005年5月,CAS协议版本2发布,引入代理和服务验证。2006年12月,安德鲁·W·梅隆基金会授予耶鲁大学第一届梅隆技术协作奖,颁发50000美元的奖金对耶鲁大学开发CAS进行奖励。颁奖之时,CAS在“成百上千的大学校园”中使用。

2012年12月,JASIG与Sakai基金合并,CAS改名为Apereo CAS。2016年11月,基于Spring Boot的CAS软件版本5发布。

CAS协议角色介绍

1.CAS Clients

客户端,也可以叫做服务,通常是我们浏览器访问的web应用。

2.CAS Server

认证服务器,它的主要用途是颁发票据和对用户进行身份验证。

CAS协议常见概念以及数据的基本介绍

局部会话:浏览器-客户端之间的会话。

全局会话:浏览器-认证服务器之间的会话。

TGT(Ticket Granting Ticke):建立全局会话的凭证,包含用户信息、票据生命周期等信息。

TGC(Ticket Granting Cookie):认证服务器认证成功后返回给浏览器的cookie,与存储在认证服务器上的TGT相对应,TGC和TGT类似于cookie和session的关系。

ST(Service Ticket):服务凭证,用于客户端验证用户身份。

上面这图是CAS协议的经典架构,从图中我们可以看到,用户访问不同语言、不同架构的服务,服务又通过CAS、SAML、Oauth等协议与认证服务器进行交互,基于spring mvc框架的认证服务器从LDAP、数据库、或AD获取数据对用户进行身份验证,然后向用户颁发凭据。

当前版本的CAS集成的身份验证机制有AD、Generic、LDAP、JDBC等等,由于发展的需要,现在的CAS已经支持其他的一些身份协议,例如OIDC、Oauth 2.0等等。

CAS协议认证流程

以下为CAS官方规范协议流程:

我们可以将这个流程分为两个部分,第一个部分为未登陆时浏览器向第一个网站app1请求资源的过程,可以分为以下几步:

1. 浏览器访问网站app1

2. 网站app1对浏览器的请求

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值