OAuth 2.0 学习笔记

本文详细介绍了OAuth2.0的基本概念、工作流程,以及其在创建跨应用数据共享的简化方案。重点讲解了角色定义、客户端类型及其在授权过程中的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

建议学时:4 小时。

OAuth 2.0 要么用来创建一个能够从其他应用读取用户信息的应用 ,要么创建一个使其他应用访问自己的用户数据的应用。OAuth 2.0 是 OAuth 1.0 的替代品,OAuth 1.0 更加复杂。OAuth 1.0 涉及到了证书等,而 OAuth 2.0 更简单,它不需要任何证书,仅仅就 SSL/TLS。

参考教程

OAuth 2.0 怎样被用来在应用间共享数据的例子

  • 第一步,用户访问客户端 web 应用。应用中的按钮”通过 Facebook 登录”(或者其他的系统,如 Google 或 Twitter)。
  • 第二步,当用户点击了按钮后,会被重定向到授权的应用 (如 Facebook)。用户登录并确认授权应用中的数据给客户端应用。
  • 第三步,授权应用将用户重定向到客户端应用提供的 URI,提供这种重定向的 URI 通常是通过注册客户端应用程序与授权应用程序完成。在注册中,客户端应用的拥有者组注册该重定向 URI,在注册过程中认证应用也会给客户端应用客户端标识和密码。在 URI 后追加一个认证码。该认证码代表了授权。
  • 第四步,用户在客户端应用访问网页被定位到重定向的 URI。在背后客户端应用连接授权应用,并且发送在重定向请求参数中接收到的客户端标识,客户端密码和认证码。授权应用将返回一个访问口令。

一旦客户端有了访问口令,该口令便可以被发送到 Facebook、Google、Twitter 等来访问登录用户的资源。

OAuth 2.0 角色

OAuth 2.0 为用户和应用定义了如下角色:

  • 资源拥有者
  • 资源服务器
  • 客户端应用
  • 授权服务器

资源拥有者是指拥有共享数据的人或应用。比如 Facebook 或者 Google 的用户就是是资源拥有者,他们拥有的资源就是他们的数据。资源拥有者在上图中被描述为人,这也是最常见的情况。但资源拥有者也可以是一个应用。OAuth 2.0 规范中包含这两种可能性。

资源服务器是指托管资源的服务器。比如,Facebook 或 Google 就是资源服务器 (或者有一个资源服务器)。

客户端应用是指请求访问存储在资源服务器的资源的应用。资源被资源拥有者所拥有。客户端应用可以是一个请求访问用户 Facebook 账号的第三方游戏。

授权服务器是指授权客户端应用能够访问资源拥有者所拥有的资源。授权服务器和资源服务器可以是同一个服务器,但不是必须的。如果这两个服务器是分开的,OAuth 2.0 没有讨论这个两个服务器应该如何通信。这是由资源服务器和授权服务器开发者自己设计决定的。

OAuth 2.0 客户端类型

OAuth 2.0 规范定义了两种客户端类型:

  • 保密的
  • 公有的

保密的客户端能够对外部保持客户端密码保密。该客户端密码是由授权服务器分配给客户端应用的。为了避免欺骗,该密码是授权服务器用来识别客户端的。例如一个保密的客户端可以是 web 应用,除了管理员,没有任何人能够访问服务器和看到该密码。

公有的客户端不能使客户端密码保密。比如移动手机应用或桌面应用会将密码嵌入在内部。这样的应用可能被破解,并且泄漏密码。这同于在用户的浏览器上运行的 JavaScript 应用。用户可以使用一个 JavaScript 调试器来寻找到应用程序,并查看客户端密码。

OAuth 2.0 授权

当一个客户端应用想要访问拥有者托管在资源服务器的资源时,它必须先获得授权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朋朋dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值