CAS单点登录-简介(一)

由于工作上的需求,最近在研究CAS单点登录,参看其它博客官网文档。为了记录学习的一些过程,以便后面翻阅也一同给大家分享一下。

版本为CAS-5.1.3

1. 什么是CAS?什么是单点登录?

CAS是一个单点登录框架,开始是由耶鲁大学的一个组织开发,后来归到apereo去管。
同时CAS也是开源,遵循着apache 2.0协议,代码目前是在github上管理。

单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

通俗理解:一个应用登录了,其他被授权的应用不用再登录。
应用例子为:百度系列产品,只要一个应用登陆成功,其它应用则不需要登陆直接访问。

2. 应用场景

  • 分布式多系统用户集中管理
  • 用户权限集中管理
  • 多因素认证(如微信pc端登录手机确认)
    如公司有多个系统,分别OA系统、CRM系统、财务管理系统、设备管理系统等,总不能访问每个系统都要登录一遍吧,用户会疯掉的,应该我们认证一遍,其他系统即可访问。

3. CAS特性

  • 多协议认证支持
    CAS
    OAuth
    OpenID
    SAML
    REST
  • 多因素认证
    Duo
    Google Authenticator
    YubiKey
  • Cas-Management 服务管理中心(谁能接入SSO)
  • TGT(授权码)管理、ST(票据)管理
  • 动态主题(不通客户端提供不同的登录页)
  • 多方式认证(校验器)
  • 配置中心
  • 监控平台
  • 多属性管理(默认只返回用户名,例如后续返回权限数据)
  • 密码管理

CAS特性非常强大,我们可以到官网文档一一了解。 https://www.apereo.org/projects/cas

4.Architecture(架构)

5.System Components (系统组件)

CAS服务器和CAS客户端组成CAS系统架构的两个物理组件,它们通过各种协议进行通信。

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

CAS Clients(CAS客户端)术语“CAS客户”在其通用中有两个不同的含义。 CAS客户端是可以通过支持的协议与服务器进行通信的任何CAS支持的应用程序。 CAS客户端也是一个软件包,可以与各种软件平台和应用程序集成,以便通过某种身份验证协议(例如CAS,SAML,OAuth)与CAS服务器进行通信。 已经开发了支持多种软件平台和产品的CAS客户端。

6. cas协议的流程图:

你可能感兴趣的:(CAS单点登录-简介(一))