CAS和OAuth2.0区别
CAS和OAuth2.0区别
CAS (Central Authentication Service) 和 OAuth 2.0 都是身份验证和授权技术,但它们在工作原理和适用场景上有明显的差异。
CAS 是一种单点登录(SSO)解决方案,它提供了一个中心化的身份验证和授权服务。用户只需要在 CAS 服务器上登录一次,就可以访问所有相关的应用程序,无需在每个应用程序上分别登录。CAS 主要用于学校和企业内部的身份验证和授权。
OAuth 2.0 是一种授权框架,可以让用户授权第三方应用程序访问他们在其他服务上存储的信息,而不需要披露密码。OAuth 2.0 主要用于互联网上的身份验证和授权,比如,用户可以使用 Facebook 账号登录第三方网站,而不需要在第三方网站上创建新账号。
因此,CAS 和 OAuth 2.0 都是为不同的场景设计的,CAS 更适合内部身份验证和授权,而 OAuth 2.0 更适合在互联网上的身份验证和授权。
Bearer和OAuth2.0区别
- Bearer认证
Bearer authentication 和 OAuth 2.0 authentication 都是身份验证技术,但它们有一些重要的差异。
Bearer authentication 是一种令牌认证方法,其中客户端通过提交令牌来请求资源。令牌是在客户端成功登录后由服务器生成的,并且客户端可以存储令牌并在后续请求中重复使用。由于令牌是随请求发送的,因此服务器可以识别客户端并执行任何必要的授权检查。
OAuth 2.0 authentication 是一种授权框架,它允许客户端在不需要直接访问用户凭据的情况下访问用户的资源。在 OAuth 2.0 中,客户端向服务器请求授权令牌,并使用该令牌请求资源。由于令牌是由授权服务器生成的,因此可以更好地保护用户的隐私和安全。
因此,可以将 Bearer authentication 视为 OAuth 2.0 authentication 的一种实现,或将 OAuth 2.0 authentication 视为 Bearer authentication 的一种扩展。但是,OAuth 2.0 比 Bearer authentication 更加灵活和强大,并提供了更多的安全特性。
CAS 认证流程

OAuth2.0授权流程
- OAuth2.0
OAuth2.0是一种开放的授权框架,它允许用户授权第三方应用访问他们的在线资源(例如文件存储,社交网络,电子邮件等),而不需要披露其访问凭证。
下面是OAuth2.0流程的一般步骤:
用户请求授权:第三方应用请求用户授权其访问其在线资源。
资源所有者授权:如果用户同意,资源所有者将生成一个授权码,并将其返回给第三方应用。
第三方应用请求令牌:第三方应用向认证服务器请求令牌,并提供授权码以证明它已获得授权。
认证服务器生成令牌:认证服务器验证授权码,如果有效,它将生成一个令牌并将其返回给第三方应用。
第三方应用请求资源:第三方应用可以使用令牌向资源服务器请求访问资源。
资源服务器验证令牌:资源服务器验证令牌,如果有效,它将返回请求的资源。
这是OAuth2.0流程的一般概述,但是它可以根据特定实现的需要进行扩展。
OAuth2.0授权方式
OAuth2.0定义了四种不同的授权方式:
授权码模式(Authorization Code):这是最常见的OAuth2.0授权方式,它适用于Web应用程序。它要求用户在客户端授权,然后客户端从认证服务器请求令牌。
简化模式(Implicit):这种方式适用于客户端(例如JavaScript应用程序),它允许客户端直接从认证服务器请求令牌,而不需要进行授权码流程。
密码模式(Resource Owner Password Credentials):这种方式要求用户向客户端提供访问凭证(例如用户名和密码),然后客户端向认证服务器请求令牌。这种方式不推荐在Web应用程序中使用,因为它需要客户端将用户的凭证存储在客户端中。
客户端凭证模式(Client Credentials):这种方式适用于客户端,它允许客户端向认证服务器请求令牌,而不需要任何用户授权。它通常用于客户端向资源服务器请求访问受保护资源。
这四种授权方式都是在OAuth2.0中定义的,你可以根据你的应用程序需求选择合适的授权方式。
OAuth2.0提供了多种授权流程,其中授权码授权流程是其中一种。这种流程通常被用于服务端应用,例如第三方应用,因为它们不能直接访问用户的资源。在这种流程中,首先获取授权码是必要的,因为它是换取令牌的一个中间步骤,并且还有助于保护资源拥有者的隐私。
然而,在某些情况下,授权码可以被省略,例如对于客户端应用,因为它们可以直接向资源服务器请求令牌。这种情况称为隐式授权流程。
因此,是否可以省去获取授权码的步骤取决于OAuth2.0的具体实现和应用场景。
作者:我是小胡胡分胡
链接:https://www.jianshu.com/p/6de90b83541b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
CAS和OAuth2.0区别的更多相关文章
- CAS与OAuth2的区别
CAS与OAuth2的区别 一. CAS的单点登录时保障客户端的用户资源的安全 . OAuth2则是保障服务端的用户资源的安全 . 二. CAS客户端要获取的最终信息是,这个用户到底有没有权限访问我( ...
- CAS和Oauth2的区别
CAS是单点登陆(SSO) Oauth2是对某种资源进行授权访问
- http、tcp、udp、OAUTH2.0网络协议区别
一.先来一个讲TCP.UDP和HTTP关系的 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RAR ...
- OAuth2.0和企业内部统一登录,token验证方式,OAuth2.0的 Authorization code grant 和 Implicit grant区别
统一登录是个很多应用系统都要考虑的问题,多个项目的话最好前期进行统一设计,否则后面改造兼容很麻烦: cas认证的方式:新公司都是老项目,用的是cas认证的方式,比较重而且依赖较多,winform的项目 ...
- 轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议
概述说明 CAS Server默认搭建出来,客户端程序只能按照CAS自身的协议接入.CAS的强大在于,有官方的插件,可以支持其他的协议.本章节就让CAS Server怎么增加OAuth2.0的登录协议 ...
- OAuth2.0和SSO授权的区别
OAuth2.0和SSO授权 一.OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该 ...
- sso和oauth2.0的简单了解学习
sso,单点登录,single sign on 缩写.sso多用于多个应用之间的切换,例如百度论坛.百度知道.百度云.百度文库等,在其中一个系统中登录,(登录有效期内)切换到另一个系统的时候,不必再次 ...
- 微信OAuth2.0网页授权
1.OAuth2.0网页授权 关于网页授权的两种scope的区别说明 1.以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页 ...
- Force.com微信开发系列(七)OAuth2.0网页授权
OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站上存储的私密资源(如用户个人信息.照片.视频.联系人列表),而无须将用户名和密码提供给第三方应用.本文将详细介绍OA ...
- 开放平台鉴权以及OAuth2.0介绍
OAuth 2.0 协议 OAuth是一个开发标准,允许用户授权第三方网站或应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的内容. OAuth 2.0 ...
随机推荐
- Spring Security默认登录页面代码位于哪里?
问:Spring Security默认登录页面代码位于哪里? 答:它是从此类生成的org.springframework.security.web.authentication.ui.DefaultL ...
- 有道云笔记默认的笔记格式转markdown
目录 0. 前言 1. 有道云笔记自带的笔记格式转markdown的方案 1.1 pdf => md 1.2 pdf => word => md 2. Markdown技巧 2.1 ...
- AI实战营第二期 | 环境配置及安装
AI实战营第二期 | 环境配置及安装 强烈推荐使用 mim 来管理 OpenMMLab repo OpenMMLab repo 不要 mim 和 pip 混用 OpenMMLab 1.0 和 Open ...
- 基于AT89C51的数字时钟课程设计
摘要:单片微型计算机简称单片机,又称为微控制器,是将CPU.RAM.ROM.定时/计数器.I/O接口电路集成到一块电路芯片上构成的微型计算机.本次设计的系统由单片机系统.数码管显示系统.键盘.蜂鸣器等 ...
- LCR 164. 破解闯关密码
破解闯关密码 闯关游戏需要破解一组密码,闯关组给出的有关密码的线索是: 一个拥有密码所有元素的非负整数数组 password 密码是 password 中所有元素拼接后得到的最小的一个数 请编写一个程 ...
- bitset 学习笔记
引入 顾名思义, \(\texttt{bitset}\) 是用 \(\texttt{bit}\) 组成的 \(\texttt{set}\); 区别于普通的 \(\texttt{bool []}\) 或 ...
- asp.net core 3.x 通用主机是如何承载asp.net core的-中
便于理解直接录制视频了 必备知识: 依赖注入.配置系统.选项模式.推荐参考:A大博客 通用主机(参考:https://www.cnblogs.com/jionsoft/p/12154519.html) ...
- 为你的Blazor程序加入本地化多语言功能
本地化 本地化是为给定语言和地区定制应用程序的过程. BootstrapBlazor 组件允许您将其 UI 元素转换为所需的语言.这包括按钮.过滤器操作符属性等文本.组件内部默认使用当前请求 UI 文 ...
- c# 调用DeepAI
包括画卡通画,找出2张图片的相似度,电脑做梦的图片生成,利用GTP-2的文本续写. using System; using System.Collections.Concurrent; using S ...
- Java技术栈总结-基础
- - -计算机技术演化- - -1 编程语言演化1.1 写在最前 此文用于个人总结,串接知识点 1.2 汇编 举例:mov .add 特点:程序量很大,几百行.几千行乃至几万行 1.3 VB- ...