2019独角兽企业重金招聘Python工程师标准>>>
体系结构
系统组件
CAS服务器和客户端组成的两个物理组件通信的CAS系统架构 通过各种协议。
CAS服务器
CAS服务器Java servlet是建立在Spring框架的主要责任是对用户进行身份验证 和授权访问CAS-enabled服务,通常称为CAS的客户,通过发行和验证票。
当服务器创建一个单点登录会话问题票据授予票(TGT)用户成功登录。 服务票证(ST)服务在用户发出的请求通过浏览器重定向使用TGT作为令牌。随后验证在CAS服务器通过秘密渠道沟通。 这些交互是CAS协议文档中详细描述。
CAS的客户端
“CAS客户端”这一术语常用有两个截然不同的含义。 CAS任何CAS-enabled应用程序客户机 可以通过一个受支持的协议与服务器通信。
CAS客户端也是一个软件包,可以与各种软件平台和应用程序集成为了与CAS服务器通过一些交流 认证协议(例如CAS,SAML,OAuth)。CAS客户端支持的软件平台和产品的数量 已经开发出来。
平台:
- Apache httpd服务器( mod_auth_cas模块 )
- Java( Java CAS客户机 )
- .NET( .NETCAS客户 )
- PHP( phpCAS )
- Perl(PerlCAS)
- Python(pycas)
- Ruby(rubycas-client)
应用程序:
- Outlook Web Application(ClearPass + .NET CAS Client)
- Atlassian Confluence
- Atlassian JIRA
- Drupal
- Liferay
- uPortal
当“CAS客户端”一词出现在本手册没有进一步的资格,它指的是集成 组件(如Jasig Java CAS客户机而不是应用程序依赖CAS服务器(客户端)。
协议
客户端与服务器通信的几个支持的协议。 所有支持的协议 在概念上类似,但有些功能或特征,使其可取为特定应用程序或用例。 例如,CAS协议支持委托(代理)认证,经过和SAML协议支持属性释放和单一。
支持的协议:
- CAS(版本1、2和3)
- SAML 1.1
- OpenID
- OAuth(1.0,2.0)
软件组件
它有助于描述CAS服务器的三层子系统:
- Web (Spring MVC/Spring Webflow)
- Ticketing(票据)
- Authentication(身份验证)
几乎所有部署注意事项和组件配置涉及这三个子系统。
Web层的端点与所有外部系统包括CAS的客户机沟通。
票务子系统生成的Web层代表CAS门票客户机访问。
SSO会话开始发行的票据授予票成功的身份验证,因此,票务子系统经常代表认证子系统。
身份验证系统通常只处理请求的SSO会话,尽管还有其他情况下它可以调用(如强制认证)。
Spring框架
CAS使用Spring框架的许多方面,最值得注意的是, Spring MVC 和 Spring Webflow 。
Spring提供了一个完整的和可扩展的框架 CAS核心代码库以及部署人员;
它是简单的定制或扩展ca的行为挂钩 CAS和Spring API扩展点。
Spring的一般知识有利于理解之间的相互作用 一些框架成分之间,但不严格要求。
基于xml的配置用于配置CAS和春天 组件,然而,是一个核心问题,安装、定制和扩展。
能力与XML通常 和 Spring IOC容器 特别是中科院安装先决条件。
参考资料:https://apereo.github.io/cas/4.2.x/planning/Architecture.html