【工欲善其事必先利其器·单点登录】CAS SSO介绍

CAS旨在为WEB应用提供企业级的单点登录解决方案,它是基于JAVA语言开发,是一个开源的并且文档非常完善的组件,支持以下可插拔认证方式:LDAP,database,X.509,2-factor,支持多种协议:CAS,SAML,Oauth,OpenID,并且提供Java、.Net、PHP、Perl、Python、Ruby、Apache、uPortal等的客户端依赖包,还集成了uPortal、BlueSocket、TikiWiki、Mule、Liferay、Moodle、Google等的登录实现,还有活跃的社区支持,在世界各地得到了广泛的应用。

官网地址:https://www.apereo.org/projects/cas

文档中心:https://apereo.github.io/cas/4.2.x/index.html

CAS的架构

CAS组件

CAS由CAS Server(服务端)和CAS Clients(客户端)两部分组成,这两部分通过多种协议进行通信交互实现单点登录。

CAS Server(服务端)

CAS服务器是基于Spring框架上的Java 应用,其主要职责是通过发出和验证票据,对用户进行身份验证并授予对启用了CAS的服务(通常称为CAS客户端)的访问权。当服务器向成功登录的用户发出票据授予票据(TGT)时,将创建SSO会话。应用户的请求,使用TGT作为令牌通过浏览器重定向向服务发出服务票据(ST)。ST随后在CAS服务器上通过反向通道通信进行验证。这些交互在CAS协议文档中有详细的描述。

CAS Server的组成

几乎所有的部署考虑和组件配置都涉及到这三个子系统。Web层是与所有外部系统(包括CAS客户端)通信的端点。Web层将业务请求委托给票务子系统(Ticketing),以生成用于CAS客户端访问的票据。SSO会话依赖认证子系统(Authentication)成功认证身份后生成票据。

CAS使用了Spring框架的许多特性,特别是Spring MVC和Spring Webflow。以Spring为基础的CAS为开发人员提供了一个完整的、可扩展的框架,通过实现CAS和Spring API扩展点来定制或扩展CAS非常简单。熟悉Spring的一般知识有助于理解CAS组件之间的相互作用。能够使用基于xml的配置是安装、定制和扩展CAS的必备基础。能够使用XML,特别是Spring IOC容器是安装CAS的先决条件。

CAS Clients(客户端)

术语“CAS客户端”在通常的使用中有两个不同的含义。CAS客户端一方面指任何启用了CAS的应用程序,可以通过受支持的协议与服务器通信。CAS客户端另一方面也指代一个软件包,这个软件包可以与各种软件平台和应用程序集成,以便通过某些身份验证协议(如CAS、SAML、OAuth)与CAS服务器通信。

发布了12 篇原创文章 · 获赞 26 · 访问量 3459

猜你喜欢

转载自blog.csdn.net/baidu_23747517/article/details/103849310