CAS单点登录系列(二)- CAS架构 【翻译】

cas版本 5.3.x,此版本下一个版本v6.0.x需要JDK11,目前个人常用还仅限于JDK8。

架构

CAS Architecture Diagram

系统组件

CAS服务端和众多客户端组成CAS系统架构的2大物理组件,2大组件通过各种协议进行通信交互。

CAS 服务端

CAS 服务端是java servlet应用,构建在spring framework之上,它的主要作用是进行用户身份认证和赋予用户进入相关启动了CAS功能的被称为CAS客户端的应用服务,完成这些功能是通过发出和验证票据。当用户登录成功,CAS服务端会发出一个TGT,服务端会话创建。ST票据信息会在用户以TGT作为token在浏览器地址中访问应用服务。ST随后被CAS服务端通过后台通道校验。这些交互过程在CAS 协议中进行了详细的描述。

CAS 客户端

术语"CAS客户端”有两层不同的含义。cas客户端可以是任何启用了CAS的应用程序,可以通过受支持的协议与CAS服务端通信。cas客户端是软件包,可以与各种软件平台和应用程序集成,以便通过某些身份验证协议(如CAS、SAML、OAuth)与CAS服务端通信。支持多个软件平台和产品的CAS客户端已经开发完成。

支持的平台:

支持的应用产品

  • Canvas
  • Atlassian Confluence
  • Atlassian JIRA
  • Drupal
  • Liferay
  • uPortal

当术语“CAS客户端”在本手册中没有进一步限定时,它是指集成组件,如Java CAS客户端,而不是依赖于CAS服务端的应用程序。

支持的协议:

客户端通过几种受支持的协议之一与服务器通信。所有受支持的协议在概念上都是相似的,但是有些协议具有某些特性,使它们适合于特定的应用程序或场景。例如,CAS协议支持委托(代理)身份验证,SAML协议支持属性释放和单点退出。

软件组件

将CAS服务器描述为三层子系统是很有帮助的:

       几乎所有的部署考虑和组件配置都涉及到这三个子系统。Web层是与所有外部系统(包括CAS客户端)通信的端点。Web层委托给票据子系统生成用于CAS客户端访问的票据。SSO会话从成功身份验证的票据颁发票据开始,因此票据子系统经常委托给身份验证子系统。

Spring Framework

    CAS使用了Spring框架的许多方面;最值得注意的是Spring MVC和Spring Webflow。Spring为核心CAS代码库和部署人员提供了一个完整的、可扩展的框架;通过连接CAS和Spring API扩展点,可以直接定制或扩展CAS行为。Spring的一般知识有助于理解一些框架组件之间的相互作用,但这不是严格要求的。

Spring Boot

        CAS也主要基于Spring Boot,这使它能够以Spring平台和第三方库的观点创建独立的web应用程序,尽可能避免XML配置的麻烦。Spring Boot允许CAS隐藏其组件及其配置的大部分内部复杂性,并提供自动配置模块,这些模块可以简单而自动地配置正在运行的应用程序上下文,而不需要太多的手动干预。

发布了27 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u014797658/article/details/102481994