首页 > 其他分享 >单点登录场景中的CAS协议和OAuth2.0协议对比

单点登录场景中的CAS协议和OAuth2.0协议对比

时间:2023-09-07 09:23:52浏览次数:40  
标签:协议 code CAS 用户 认证 OAuth2.0 客户端

相信关注过CAS和OAuth2.0协议的朋友们,都有大概的了解,简单描述两个协议的主要区别,网上的伙伴们通常会说:

CAS单点登录时,保护客户端资源

OAuth2.0是保护服务端资源安全

而对于单点登录场景来说,无论是保护客户端资源,还是保护服务端资源,最终都是完成认证中心的认证,使访问的资源获取到登录的用户信息,从这个角度来看,两个协议并没有什么区别。

那么在怎样去理解两种的区别呢?先来看一下两个协议:

CAS协议

说到CAS协议,必须亮出下图:

 

1、访问服务:SSO 客户端发送请求访问应用系统提供的服务资源。

2、定向认证:SSO 客户端会重定向用户请求到 SSO 服务器。

3、用户认证:用户身份认证。

4、发放票据:SSO 服务器会产生一个随机的 Service Ticket 。

5、验证票据:SSO 服务器验证票据 Service Ticket 的合法性,验证通过后,允许客户端访问服务。

6、传输用户信息:SSO 服务器验证票据通过后,传输用户认证结果信息给客户端。

交互过程中1、2、3、4步骤是通过客户端网传输的,存在安全隐患,可以看出其中3和4步携带有敏感数据,3用户认证是最基本的场景由CAS Server保障认证安全,4重定向到CAS Client的过程携带有认证核心票据Service Ticket(有时效性的,可重复使用的),安全性由CAS Client保障,为了保障这两步的信息传输安全,要求CAS Client 和CAS Server端都采用Https方式访问进行传输加密,因为一旦Service Ticket被黑客拦截,则可以模仿认证成功的请求,欺骗CAS Client用户已完成认证,并进一步完成后续的认证交互。

 

OAuth2.0

本文以授权码模式(authorization code)的交互进行对比:

 

1、用户访问业务系统。

2、业务系统判断用户没有登录,把用户重定向到认证中心进行认证。

3、用户在认证中心完成登录认证,IAM为用户的此次请求创建OAuth code,并带OAuth code返回应用回调地址。

4、应用获取OAuth code并和约定的密钥一起通过服务器间请求,获取Access Token。

5、应用通过Access Token调用用户接口获取用户信息。

6、应用得到用户身份,完成用户登录。

交互过程中1、2、3是通过客户端网络传输的,存在安全隐患,但是因为这三步的目的是获取code,而获取的code是一次性有效的,并无法单独使用,须要与第4步中的约定密钥一起使用获取token信息,所以安全性有一定的保障,业务系统须要保管好密钥,并保障密钥不从客户端传输,仅在服务器间传输。

综上所述,无论是CAS协议的认证集成还是OAuth2.0的认证集成,都需要业务系统和认证中心通过https协议保障客户端http请求的安全性,而CAS协议这一点尤为重要,因为保障Service Ticket的安全性完全依赖于https 的SSL协议保障,而OAuth2.0在此基础上,还有额外的两个约束:1、code次数有效性约束;2、换取token时须要提供约定密钥。

标签:协议,code,CAS,用户,认证,OAuth2.0,客户端
From: https://www.cnblogs.com/cnhk19/p/17683964.html

相关文章

  • java中CAS是什么?原理是什么?CAS有什么缺点
    什么是CAS?CAS叫做CompareAndSwap,比较并交换,主要是通过处理器的指令来保证操作的原子性。CAS的原理是什么?CAS包含三个操作数:1.  变量内存地址,V表示2.  旧的预期值,A表示3.  准备设置的新值,B表示当执行CAS指令时,只有当V等于A时,才会用B去更新V的值,否则就不会执行更新操作。CAS......
  • Modbus协议详解2:通信方式、地址规则、主从机通信状态
    首先我们要清楚:Modbus是一种串行链路上的主从协议,在通信线路上只能有一个主机存在,不会有多主机存在的情况。虽然主机只有一个,但是从机是可以有多个的。Modbus的通信过程都是由主机发起的,从机在接收到主机的请求后再进行响应,从机不会主动进行数据的发送。并且从机之间也不会互相发送......
  • dht 协议
      dht协议 http://www.bittorrent.org/beps/bep_0005.html 及其翻译 http://gobismoon.blog.163.com/blog/static/5244280220100893055533/  基于dht协议的网络爬虫 http://codemacro.com/2013/05/19/crawl-dht/  dht协议的原理分析,非常不错,建议一看 http......
  • 如何使用 Update in Case 语句和列作为别名
    在MySQL中,可以使用UPDATE和CASE语句来更新表中的数据,并且可以使用列别名来引用列。以下是一个示例,展示如何在UPDATE语句中使用CASE和列别名:假设有一个名为users的表,包含id、name和age列。要根据条件更新age列,可以使用如下的UPDATE语句:UPDATEusersSETage=CASEWHENname=......
  • 密码协议学习笔记(2):密钥交换协议
    密钥交换协议:设计密钥交换协议的目的是在多个用户之间安全地协商出一个共享的会话密钥(用于对称加密协议).博主注:该类协议要求保证在可窃听信道的通信中密钥的安全,而在可篡改信道的通信中,密钥被篡改时可以被识别.Diffie-Hellman密钥交换协议:通信双方Alice,Bob约定素数阶......
  • 多摩川编码器协议理解与自做经历-(2)
    1,前言:上一期介绍了多摩川协议里面的数据介绍,这期我们将使用实物多摩川编码器通过485和逻辑分析仪,来实操了解多摩川协议纸上得来终觉浅,绝知此事要躬行。 我先介绍一下我用到的实物。多摩川编码器,伺服驱动器,梦源逻辑分析仪。通过伺服驱动器,看一下了解多摩川编码器和驱动器的......
  • 【网络爬虫笔记】爬虫Robots协议语法详解
    Robots协议是指一个被称为RobotsExclusionProtocol的协议。该协议的主要功能是向网络蜘蛛、机器人等搜索引擎爬虫提供一个标准的访问控制机制,告诉它们哪些页面可以被抓取,哪些页面不可以被抓取。本文将进行爬虫Robots协议语法详解,同时提供相关代码和案例。Robots协议的基本语法Rob......
  • 重磅出击,微信小程序最新隐私协议弹窗解决方案
    微信官方公告❝微信日常整活,光权限和用户信息这一块不知道调整了多少次了,小程序开发者苦腾讯久已!上有政策,下有对策,这里讲解一下,新版本对线思路!❞啥都不说,先上社区评论为敬!友好评论1友好评论2这里展示的是原生小程序,因为Uniapp官网文档还没更新,其实方法都差不多,只是写法不同!前置问题......
  • 直播系统源码部署,高效文件管理与传输的FTP协议
    引言: 在直播系统源码部署的过程中,开发协议是支持直播系统源码功能技术搭建成功并发挥作用的关键之一,在直播系统源码的众多协议中,有一个协议可以帮助直播系统源码部署完成后用户进行媒体文件的上传、下载、管理等操作,这个协议就是FTP协议,本文就将具体介绍直播系统源码的FTP协议......
  • Proj CDeepFuzz Paper Reading: Invariance-inducing regularization using worst-cas
    Abstract本文:Task:1.proveinvariance-inducingregularizerscanincreasepredictiveaccuracyforworst-casespatialtransformations2.provethatonadversarialexamplesfromtransformationgroupsintheinfinitedatalimitrobusttrainingcanalsoimpro......