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 认证流程

 
cas_flow_diagram (1).png

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区别的更多相关文章

  1. CAS与OAuth2的区别

    CAS与OAuth2的区别 一. CAS的单点登录时保障客户端的用户资源的安全 . OAuth2则是保障服务端的用户资源的安全 . 二. CAS客户端要获取的最终信息是,这个用户到底有没有权限访问我( ...

  2. CAS和Oauth2的区别

    CAS是单点登陆(SSO) Oauth2是对某种资源进行授权访问

  3. http、tcp、udp、OAUTH2.0网络协议区别

                    一.先来一个讲TCP.UDP和HTTP关系的 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RAR ...

  4. OAuth2.0和企业内部统一登录,token验证方式,OAuth2.0的 Authorization code grant 和 Implicit grant区别

    统一登录是个很多应用系统都要考虑的问题,多个项目的话最好前期进行统一设计,否则后面改造兼容很麻烦: cas认证的方式:新公司都是老项目,用的是cas认证的方式,比较重而且依赖较多,winform的项目 ...

  5. 轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议

    概述说明 CAS Server默认搭建出来,客户端程序只能按照CAS自身的协议接入.CAS的强大在于,有官方的插件,可以支持其他的协议.本章节就让CAS Server怎么增加OAuth2.0的登录协议 ...

  6. OAuth2.0和SSO授权的区别

    OAuth2.0和SSO授权   一.OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该 ...

  7. sso和oauth2.0的简单了解学习

    sso,单点登录,single sign on 缩写.sso多用于多个应用之间的切换,例如百度论坛.百度知道.百度云.百度文库等,在其中一个系统中登录,(登录有效期内)切换到另一个系统的时候,不必再次 ...

  8. 微信OAuth2.0网页授权

    1.OAuth2.0网页授权 关于网页授权的两种scope的区别说明 1.以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页 ...

  9. Force.com微信开发系列(七)OAuth2.0网页授权

    OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站上存储的私密资源(如用户个人信息.照片.视频.联系人列表),而无须将用户名和密码提供给第三方应用.本文将详细介绍OA ...

  10. 开放平台鉴权以及OAuth2.0介绍

    OAuth 2.0 协议 OAuth是一个开发标准,允许用户授权第三方网站或应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的内容. OAuth 2.0 ...

随机推荐

  1. vue3项目中报错:Unexpected mutation of "xxx" prop

    vue3 中element 弹窗绑定需要通过v-model,这个时候父级会传个dialogVisible(boolean值)过来,结果会报eslint的错. Unexpected mutation o ...

  2. Intellij IDEA开发环境中Springboot项目无Run ****main()的菜单

    问题描述: Intellij  IDEA开发环境中Springboot项目无Run ****main()的菜单. 解决办法有以下几种: 方法1:Idea无右键run选项, 无法通过main方法启动sp ...

  3. [转]在MyBatis中使用pageHelper5.1.9分页插件实现物理分页

    pagehelper的GIT地址:https://github.com/pagehelper/Mybatis-PageHelper/ 废话少说,直接给出中文官方链接: 1.如何使用分页插件 2.HOW ...

  4. Java实现拍卖系统详解

    一.项目背景与需求分析 随着互联网技术的飞速发展,电子商务领域不断拓展新的业务模式,在线拍卖系统应运而生并逐渐成为一种重要的商业交易方式.在当今数字化的时代,人们越来越倾向于通过网络平台进行各类交易活 ...

  5. 闲着没事,用STC12C5616AD制作一个74hc595测试仪

    手头有些特别廉价的直插74hc595,怕这些595因为廉价而质量不过关,因而萌发了制作一个测试仪的想法. 用测试仪先对595进行测试,功能正常了,再接入电路应用. 该测试仪能自动向595写入数据,再读 ...

  6. Solution Set - “我将它捣成美梦愿你梦里无忧”

    目录 0.「NOI Simu.」掌分治 1.「集训队互测 2019」「LOJ #3077」绝目编诗 2.「ICPC 2019 WF」「洛谷 P6256」Directing Rainfall 3.「CT ...

  7. WPF 无边框窗体改变大小和移动

    WIN32 API: private const int WM_NCHITTEST = 0x0084; private readonly int agWidth = 12; //拐角宽度 privat ...

  8. 双指针习题:Binary Deque

    14.Binary Deque 题面翻译 Binary Deque - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 有多组数据. 每组数据给出 \(n\) 个数,每个数为 \(0\) ...

  9. 4. 使用sql查询excel内容

    1. 简介 我们在前面的文章中提到了calcite支持csv和json文件的数据源适配, 其实就是将文件解析成表然后以文件夹为schema, 然后将生成的schema注册到RootSehema(Roo ...

  10. Qt Quick 实现一个右下角弹出消息的组件

    目录 开发环境 简介 预览图 如何使用 代码 main.qml MessageView.qml Background.qml ScroolBar.qml MessageQueueView.qml 开发 ...