扩大
缩小
  

CAS之一--什么是CAS?

一、什么是CAS?

CAS 是 Centeral Authentication Service 缩写,即 中央认证服务,旨在为 Web 应用系统提供一种可靠的单点登录方法;本文主要介绍其基本概念。

二、CAS的特点

  • 支持 CAS v1, v2 and v3 协议
  • 支持 SAML v1 and v2 协议
  • 支持 OAuth v2 协议
  • 支持 OpenID & OpenID Connect 协议
  • 支持 WS-Federation Passive Requestor 协议
  • 可通过 JAAS,LDAP,RDBMS,X.509,Radius,SPNEGO,JWT,Remote,Apache Cassandra,Trusted,BASIC,Apache Shiro,MongoDb,Pac4J 等方式进行身份验证
  • 可委托 WS-FED、Facebook、Twitter、SAML IdP、OpenID、OpenID Connect、CAS 等进行身份验证
  • 可通过 ABAC, Time/Date, REST, Internet2's Grouper 等授权
  • 可通过 Hazelcast,Ehcache,JPA,Apache Cassandra,Memcached,Apache Ignite,MongoDb,Redis,DynamoDb,Couchbase 等进行高可用集群部署。
  • 应用支持 JSON、LDAP、YAML、Apache Cassandra、JPA、Couchbase、MongoDb、DynamoDb、Redis 等技术和组件
  • 可通过 Duo Security,YubiKey,RSA,Google Authenticator,U2F,WebAuthn 等进行多重身份验证
  • 可通过控制台管理管理日志记录、监视、统计信息、配置、客户端注册等
  • 全局和单独应用的主题设置
  • 密码管理和密码策略增强
  • 可使用 Apache Tomcat, Jetty, Undertow,  Docker 来部署应用

三、CAS架构

 

四、基于 CAS 协议的单点登录过程

CAS 框架本身支持多种协议,这里介绍下该框架中使用较多的 CAS 协议登录过程。

 

 

1) 访问服务:用户发送请求访问应用系统(CAS 客户端)中受保护的服务资源。
2) 重定向认证:CAS 客户端分析 HTTP 请求中没有 Service Ticket(即 ST)或 SessionID,说明用户还没有进行身份认证。于是,重定向用户请求到 CAS 服务端进行身份认证,并把用户此次访问 CAS 客户端的 URL 作为参数(service)传递给 CAS 服务端。
3) 用户认证:CAS 服务器接收到身份认证请求后转向登录页面,用户提供认证信息后进行身份认证。身份认证成功后,CAS 服务器给浏览器返回一个 TGC(用户身份信息凭证的 cookie)。
4) 发放票据:CAS 服务器会产生一个随机的 ST,然后重定向到 CAS 客户端。
5) 验证票据:CAS 客户端收到 ST 后,向 CAS 服务器验证票据 ST 的合法性,验证通过后,允许用户访问客户端服务。
6) 传输用户信息:CAS 服务器验证票据 ST 通过后,传输用户认证结果信息给客户端。

五、术语解释

Ticket Granting ticket (TGT) :授权票据,用于生成 ST,存在服务端。
Ticket-granting cookie (TGC) :授权票据的 cookie,通过该 cookie 可以查找到 TGT。
Service ticket (ST) :服务票据,由 TGT 生成的一次性票据,用于验证,只能用一次。CAS 客户端会调用 CAS 服务端来检验该票据的有效性。

 

posted @ 2023-02-08 16:42  风筝遇上风  阅读(153)  评论(0编辑  收藏  举报