免费注册,打造高效身份管理
博客/开发者/CAS 和 OAuth 的区别是什么?
CAS 和 OAuth 的区别是什么?
Authing 官方2022.11.10阅读 2099

单点登录英文全称 Single Sign On,简称 SSO。它的定义是:在多个应用系统中,用户只需要登录一次,即可访问所有相互信任的应用系统。例如,常见的单点登录是通过一次登录访问各种应用程序。例如,登录您的员工账号就可以让您访问飞书、销售易、客户系统等应用程序,无需再次输入账号和密码。

 
常见的 OIDC、OAuth 2.0、SAML2、CAS 3.0、LDAP为标准认证协议。标准协议会按照特定的方式传递用户信息,正规的业务系统产品都会支持标准协议,使用标准协议对接可以一劳永逸地完成对接
 

什么是 OAuth

OAuth 是一种关于授权(Authorization)的开放网络标准,是目前最流行的授权机制,在客户与服务商之间,设置授权层。客户必须先登录授权层,此时服务商会向客户授权令牌的权限及使用期限,然后客户才能登录服务商,使用其服务。

OAuth 2.0 有四种授权模式:

  1. 授权码(Authorization-code):指的是第三方应用先申请一个授权码,然后再用该码获取令牌。该方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。
  2. 隐藏式(Implicit):该模式面向纯前端应用,App 认证服务器只返还一次授权码。
  3. 密码式(Password):允许客户端或者第三方应用,直接使用用户的账号密码进行令牌的获取。该方式在用户端应用广泛。
  4. 凭证式(Client credentials):适用于没有前端的命令行应用,即在命令行下请求令牌。该方式操作简单,只需要发送客户请求,即可获得访问令牌(Access Token),但这种方式非常不安全,需要对客户端完全信任,且客户端本身需要具备安全性。

常见的 OAuth 2.0 授权流程如下:

  1. 在你的应用中,让用户访问登录链接,浏览器跳转到 Authing,用户在 Authing 完成认证
  2. 浏览器接收到一个从 Authing 服务器发来的授权码
  3. 浏览器通过重定向将授权码附带在重定向地址后面
  4. 你的应用服务将授权码发送到 Authing 获取 AccessToken,如果需要,还会返回 refresh token。
  5. 你的应用后端现在知道了用户的身份,后续就可以保存用户信息,重定向到前端其他页面,使用 AccessToken 调用资源方的其他 API 等等。

目前最新的版本为 OAuth 2.0 版,主要有四个主体

  • 授权服务器,负责颁发访问令牌(Access Token),Authing 是授权服务器。
  • 资源所有者,应用的用户是资源的所有者,授权其他人访问其资源。
  • 调用方,调用方请求获取访问令牌(Access Token),经过用户授权后,Authing 为其颁发访问令牌(Access Token)。调用方可以携带访问令牌(Access Token)到资源服务器访问用户的资源。
  • 资源服务器,接受访问令牌(Access Token),然后验证它的被赋予的权限项目,最后返回资源。
 

什么是 CAS

CAS 框架:CAS(Central Authentication Service,即:统一认证服务)是实现 SSO 单点登录的框架。
CAS 术语
Ticket Granting Ticket (TGT) :可以认为是 CAS Server 根据用户名密码生成的一张票,存在 Server 端。
Ticket Granting Cookie (TGC) :其实就是一个 Cookie,存放用户身份信息,由 Server 发给 Client 端。
Service Ticket (ST) :由 TGT 生成的一次性票据,用于验证,只能用一次。相当于 Server 发给 Client 一张票,然后 Client 拿着这个票再来找 Server 验证,看看是否由 Server 签发。
 
在 CAS 协议中,定义了 Service Ticket 作为客户端与服务器之间随机的票据,授权流程如下:
  1. 访问服务:客户端发送请求访问应用系统提供的服务资源。
  2. 定向认证:客户端会重定向用户请求到服务器。
  3. 用户认证:定向到服务器后,用户进行身份认证。
  4. 发放票据:服务器会产生一个随机的 Service Ticket 。
  5. 验证票据:服务器会验证票据 Service Ticket 的合法性。
  6. 传输用户信息:服务器验证票据通过后,传输用户认证结果信息给客户端。
 
 
OIDC、OAuth 2.0、SAML2、CAS 3.0 标准认证协议具体对比:
 

关于 Authing

Authing 身份云国内首款以开发者为中心的全场景身份云产品,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理服务,已帮助 20,000+ 家企业和开发者构建标准化的用户身份体系。

Authing 既是客户的支持者,也是客户的产品专家和战略顾问,更是值得信赖的合作伙伴。我们提供全球化的身份专家支持团队,通过网络或电话,7*24 小时不间断支持。Authing 的帮助中心提供最新的技术知识库、商业案例以及与您的同行和 Authing 专家联系的机会。无论您何时需要我们,Authing 的支持团队总能最快响应。

2022 年,Authing 将秉承着致力于客户成功的初衷,帮助推动客户重要业务,为实现身份连通、打破数据孤岛而不懈努力。

文章作者

avatar

Authing 官方

0

文章总数

authing blog rqcode
关注 Authing 公众号
随时随地发现更多内容
authing blog rqcode
添加 Authing 小助手
加入 Authing 开发者大家庭
To create a perfect identity system
Online
How do you create a complete identity system?
Communicate Now
authing
Add Wecom to receive industry information
authing
authing
Download the Authing token and experience fast login authentication!
Free Trial
Online
Phone