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. linux服务器下 conda 配置清华源

    安装miniconda 下载安装脚本 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Li ...

  2. CDS标准视图:功能位置 I_FunctionalLocation

    视图名称:I_FunctionalLocation 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'Functional Location' @Analytics: ...

  3. IoC究竟shift什么?——IoC的基础分析

    IoC全称Inversion of Control,直译为控制反转.这是一种设计理念,并非技术. 在明白控制反转之前,应该知道"反转"反的是什么. 被反转的正转 我们从生活中的做饭 ...

  4. Spring Boot进阶教程--注解大全

    springboot注解大全 SpringBoot注解就是给代码打上标签的能力.通过引入注解,我们可以简单快速赋予代码生命力,大大提高代码可读性和扩展性.注解本身不具有任何能力,只是一个标签,但是我们 ...

  5. .NET 数据拷贝方案选择

    应用中我们经常使用到数据的复制,在.NET中有多种方式可以实现复制数据或对象.选择哪种方式通.是浅拷贝还是深拷贝,取决于对象的复杂性.数据量以及具体需求场景. 1. MemberwiseClone拷贝 ...

  6. VulNyx - System

    扫描发现 2121是ftp端口 8000 http的一个端口 6379redis端口 爆破redis的密码 爆破出来时bonjour 猜测ftp的密码和redis的密码是一样的 尝试用密码去爆出ftp ...

  7. 魔乐开发者社区正式上线,AI开发者快来撩!

    近日,由天翼云与华为联合打造的魔乐(Modelers)开发者社区,在天翼云中国行·贵州站活动现场上线发布.依托全场景开源模型资源.易用的模型开发套件,以及强大的共建共享生态系统等优势,社区将使能开发者 ...

  8. C# 如何解决文件写权限不可访问

    原文链接 实际业务中,我们可能会遇到我们的安装包将程序安装在C盘Program Files目录下后,有些文件要修改或者新增会导致拒绝访问的异常.但是我们又不想把数据放临时文件夹AppData中,那么如 ...

  9. 【杂谈】主键ID如何选择——自增数 OR UUID?

    1.生成位置如何影响选择? 数据库往返时间 使用自增数时,ID是由数据库在执行INSERT操作时生成的:而UUID则可以在应用层生成. 考虑这样的场景: 一个方法需要插入A和B两个实体.其中B的数据需 ...

  10. [BZOJ3514] [Codechef MARCH14] GERALD07加强版 题解

    名字感觉挺奇怪的. 考虑离线算法.首先答案就是用 \(n\) 减去连完边后的生成树森林边数.生成树当然就可以用 \(lct\) 求解了.我是不会告诉你这个时候我已经开始想回滚莫队了的. 考虑当我们倒序 ...