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. [转]BeanUtils.copyProperties使用总结以及注意事项

    1.前言开发过程中,讲一个对象的属性和值赋值到另一个对象上,大量使用了get.set方法,看着很臃肿,思考下肯定不只有我有这种想法,所以技术上肯定有方法能解决这个问题,所以查阅了一些资料发现了Bean ...

  2. 几种常见的Web服务器-copy

    Apache与Tomcat的区别 ,几种常见的web/应用服务器 APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等动态 ...

  3. A note on the calculation of some functions in finite fields: Tricks of the Trade解读

    本节对该paper进行解读,记录笔记. 经常见到的是在素域\(F_p\)上计算的,尤其是双线性对出现后,在扩域\(F_{p^m}\)上计效率就需要优化了.该论文主要总结了一些在有限域上进行某些计算(求 ...

  4. linux:正则表达式

    介绍 一种模式匹配语言,可以使永远筛选数据以查找特定的内容,可以应用在vim.grep.less.perl.python中 基础 .(点) 匹配除 \n 之外的任何单个字符,若要匹配包括 \n ,则应 ...

  5. SOUI4中使用文件资源

    一直以前SOUI中引用资源都是通过uires.idx中定义资源类型及路径,比如: <?xml version="1.0" encoding="utf-8" ...

  6. SOUI4.0发布

    4.0在3.x基础上将核心对象全部COM接口化,支持C语言调用SOUI. GIT仓库: gitee: https://gitee.com/setoutsoft/soui4 github: https: ...

  7. protocol buffers(protobuf)安装教程

    本文按照mac讲解protobuf的安装,windows上比较好安装按照mac的基本流程就可以安装成功,mac上的安装有的时候比较容易出现问题 一.通过brew的方式安装(仅Mac) 需要mac中存在 ...

  8. PHP常量与数据类型

    PHP常量与数据类型 PHP常量 在PHP中,常量是值在脚本执行期间不会改变的量.常量使用define()函数或const关键字来定义. 使用define()函数: define("GREE ...

  9. [记录点滴] 一个Python中实现flatten的方法

    之前如果想使用flatten,一般借助于numpy.ndarray.flatten. 但是 flatten只能适用于numpy对象,即array或者mat,普通的list列表不适用. 最近找到一个轻便 ...

  10. Codeforces 319B Psychos in a Line 题解 [ 绿 ] [ 单调栈 ] [ 动态规划 ] [ adhoc ]

    Psychos in a Line:很好的单调栈优化 dp 题! 观察 我们先观察,一个精神病人会一直杀到什么时候.显然,会杀到右边第一个比他大的精神病人那里,然后他就杀不动了. 因此我们可以从右往左 ...