开源单点登录框架CAS学习一 —— CAS的架构

原创
2015/09/16 20:52
阅读数 6.8K

cas architecture

系统组件

CAS服务器与客户端组成CAS系统架构的两大部分,两者之间通过各种协议进行通讯(CAS、SAML、OAuth)

  • CAS服务器 是基于Spring Framework的Java Servlet,负责用户认证与客户端接入过程的凭证签发与验证。用户登录成功后,服务器会创建一个SSO会话并签发TGT(ticket-granting ticket:签名凭证)。当用户请求通过浏览器重定向发送到服务器时,客户端提交TGT作为令牌,服务器将再签发一个ST(service ticket:服务凭证)。这个ST接下来会用于与服务器的后端通信验证。这些交互的详细细节可参见CAS协议文档。
  • CAS客户端 CAS客户端在术语层面通常有两层意思。一是指任一启用了CAS并可与服务器之间按支持的协议通讯的应用。另一是指为了与服务器进行通讯,而被集成进各种软件平台和应用的软件包。CAS客户端支持如下各种平台与产品: 平台:
    • Apache httpd Server (mod_auth_cas module)
    • Java (Java CAS Client)
    • .NET(.NET CAS Client)
    • PHP (PHP CAS)
    • Perl(PerlCAS)
    • Python (pycas)
    • Ruby (rubycas-client) 应用:
    • Outlook Web应用 (ClearPass + .NET CAS Client)
    • Atlassian Confluence
    • Atlassian JIRA
    • Drupal
    • Liferay
    • uPortal 在本文档中,如果没有特别指明"CAS客户端"时,它是指集成组件,比如Jasig Java CAS Client,而不是置于CAS服务器之上的应用。

协议

客户端与服务器之间可以使用任一支持的协议进行通讯。这些协议在概念上是类似的,只是有一些协议为了满足特定的应用与案例增加了一些特性或特点。例如,CAS协议支持代理认证,SAML协议支持属性发布和单点登出。 支持的协议:

软件组件

为了便于理解,可以将CAS服务端分为三层子系统来进行描述:

几乎所有的部署考虑和组件配置都包含在这三层子系统中。WEb层是与所有外部系统包括CAS客户端进行通信的端点。WEB层代理Ticketing子系统为客户端接入生成凭证。SSO会话开始于成功认证之后TGT签名凭证的签发,由此也可以看出凭证子系统是认证子系统的代理。

认证系统一般只在SSO会话开始之后才处理请求,尽管也有一些情况下它也能被触发,比如强制认证。

展开阅读全文
打赏
0
6 收藏
分享
加载中
更多评论
打赏
0 评论
6 收藏
0
分享
返回顶部
顶部