美文网首页
cas协议是什么

cas协议是什么

作者: 洋洋洒洒_6a20 | 来源:发表于2019-11-25 18:21 被阅读0次

cas协议是什么?

CAS协议是一种简单且功能强大的基于票证(ticket)的协议。它涉及一个或多个客户端和一台服务器。中央身份验证服务(CAS)是Web的单点登录/单点退出协议。用户向中央CAS Server应用程序提供一次凭据(例如用户ID和密码),就可以访问多个应用程序。客户端嵌入在CASified应用程序中(称为“ CAS服务”),而CAS服务器是独立组件:

  • CAS服务器负责验证用户并授予访问应用程序
  • CAS客户保护CAS应用程序和检索CAS服务器的授权用户的身份。

关键概念:

  • TGT存储在TGCcookie中的(“票证授予票证”)代表用户的SSO会话。
  • ST(服务票据),作为传输GET参数的URL,代表由CAS服务器授予访问CASified应用程序对特定用户。

官方地址

第一次访问app#a的单点登录流程图

sequenceDiagram
user->>browser:用户通过游览器访问应用
browser ->> app#a: 用户访问应用a 应用a监测到没有认证的用户重定向游览器到cas服务器
app#a ->> browser: 302 location:https://cas.example.com/cas/login?service=https%3A%2F..com%2F
browser ->> cas server: get https://cas.example.com/cas/login?service=https%3A%2F..com%2F
cas server ->> browser: cas判断是否有sso session 存在,没有session存在返回登录页面
browser ->> cas server: post https://cas.example.com/cas/login?service=https%3A%2F..com%2F 带上用户名密码
cas server ->> cas server: 认证用户
cas server ->> browser: 用户认证成功,生成sso session 并生成 TGT 存在游览器cookie里面 \n Set-Cookie: CASTGC=TGT-2345678 302 location https://app.example.com/?ticket=ST-12345678
browser ->> app#a: get https://app.example.com/?ticket=ST-12345678
app#a ->> cas server: 客户端带上ticket请求cas校验ticket get https://cas.example.com/serviceValidate?service=https%3A%2F..com%2F&ticket=ST-12345678
cas server ->> app#a: cas返回 [200] XML Content
app#a ->> browser: 设置cookie,重定向到前端业务地址 Set-Cookie: JESSIONID=12345678 302 location https://app.example.com/
browser ->> app#a: get https://app.example.com/: app#a 校验session是否合法
app#a ->> browser: session合法响应内容
browser ->> user : 渲染页面

第二次访问相同系统app流程

sequenceDiagram
user->>browser:用户通过游览器访问应用
browser ->> app#a: 游览器带上cookie访问应用a
app#a ->> browser: 校验session通过返回页面
browser ->> user: 渲染页面
browser ->> cas server: get https://cas.example.com/cas/login?service=https%3A%2F..com%2F

第一次访问第二个app app#b

sequenceDiagram
user->>browser:用户通过游览器访问应用
browser ->> app#b: get https://app2.example.com 
app#b ->> browser: 应用b检测到没有认证的用户重定向游览器到cas服务器 302 location:https://cas.example.com/cas/login?service=https%3A%2F..com%2F
browser ->> cas server: get https://cas.example.com/cas/login?service=https%3A%2F..com%2F
cas server ->> cas server:校验TGT 判断是否存在 sso session
cas server ->> browser: 用户认证成功 302 location https://app.example.com/?ticket=ST-12345678
browser ->> app#b: get https://app.example.com/?ticket=ST-12345678
app#b ->> cas server: 客户端带上ticket请求cas校验ticket get https://cas.example.com/serviceValidate?service=https%3A%2F..com%2F&ticket=ST-12345678
cas server ->> app#b: cas返回 [200] XML Content
app#b ->> browser: 设置cookie,重定向到前端业务地址 Set-Cookie: JESSIONID=12345678 302 location https://app.example.com/
browser ->> app#b: get https://app.example.com/: app#a 校验session是否合法
app#b ->> browser: session合法响应内容
browser ->> user : 渲染页面

官方时序图

正常单点登录流程 代理单点登录流程

代理单点登录流程 没看懂要用在那种场景 希望哪位大牛能指点指点

相关文章

  • cas协议是什么

    cas协议是什么? CAS协议是一种简单且功能强大的基于票证(ticket)的协议。它涉及一个或多个客户端和一台服...

  • Build Your Own Cas Service - Bas

    预备知识 具体的CAS协议见, CAS Protocal,接下来我们讲jasig的CAS Implementati...

  • CAS protocol(CAS协议)

    CAS协议是一种专门为CAS开发的简单而强大的基于票证的协议。 它涉及一个或多个客户端和一个服务器。 客户端嵌入C...

  • CAS登录认证

    CAS最基本的协议过程: 名词解释 Ticket Grangting Ticket(TGT) :TGT是CAS为用...

  • CAS协议流程

    所以一般的设计模式,可以设置一个主页App,然后通过单点登陆代理来访问其它App。现在要讨论的重点就是:1) 能否...

  • CAS-Server的配置

    一、CAS 介绍(若只是搭建环境,可以忽略) 1.1 基础知识 TGT、ST是CAS1.0协议中就有的票据 TG...

  • CAS

    之前讲锁的实现的时候讲到了CAS,但没有详细的讲述CAS是什么,只是说明了CAS能保证原子性,那么原子性是什么?C...

  • JMM内存模型,JVM分配策略,Volatile+AtomicX

    为了深入理解CAS的,我们从以下几个维度去探究CAS,然后再去考虑为什么出现ABA问题。 CAS是什么? 测试用例...

  • 【Java 并发编程实战】使用 AQS 实现一个简单的互斥锁

    使用 AQS 实现一个简单的互斥锁 AQS 是什么? 参考[2]。 CAS自旋 CAS 是Compare And ...

  • CAS简介

    CAS全称Central Authentication Service, 是一种可靠的SSO解决方案。基本的协议过...

网友评论

      本文标题:cas协议是什么

      本文链接:https://www.haomeiwen.com/subject/rvbjwctx.html