前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Oauth之舞

Oauth之舞

原创
作者头像
用户4158112
修改于 2023-09-24 06:24:26
修改于 2023-09-24 06:24:26
8530
举报

Oauth2解决的问题 【目的】

1 Oauth2 可以解决两个系统间用户信息不关联的情况下的访问授权【互相访问时不需要将用户的账户和密码告知给对方】

什么时Oauth2

OAuth 2.0 框架能让第三方应用以有限的权限访问 HTTP 服务,可以通过构建资源

拥有者与 HTTP 服务间的许可交互机制,让第三方应用代表资源拥有者访问服务,或者

通过授予权限给第三方应用,让其代表自己访问服务。【简单的来说就是Oauth2可以通过访问令牌构建出异构系统间的交互机制,客户端或服务可以代替资源拥有者访问资源】

资源拥有者 :用户

客户端 :服务或者app浏览器等

受保护的资源:用户保存在服务器的数据

Oauth2 可以防止如下情景

当两个异构系统进行交互式,你使用的客户端会向你询问账户名和密码然后用这个账户名和密码访问另一个系统如果客户端信任较低那么可能会出现客户端公司盗用信息的行为。

Idea和赛博坦的开发者密钥 我们通过该密钥进行激活相关权限 --> 最大的问题就是密钥泄露 这种方式还存在问题就是开发者每次进行重启服务器就需要手动导入密钥。---Oauth解决了这个问题 它可以办法 具有细粒度的权限访问凭据

京东客户端由于没有权限响应客户端

HTTP/1.1 302 Moved Temporarily

x-powered-by: Express

Location: http://localhost:9001/authorize?response_type=code&scope=foo&client

_id=oauth-client-1&redirect_uri=http%3A%2F%2Flocalhost%3A9000%2Fcallback&

state=Lwt50DDQKUB8U7jtfLQCVGDL9cnmwHH1

这个重定向的目的就是隔离客户端防止客户端盗用凭据 ,由用户直接与授权服务器进行交互

客户端发送get请求到授权服务器进行授权

GET /authorize?response_type=code&scope=foo&client_id=oauth-client

-1&redirect_uri=http%3A%2F%2Flocalhost%3A9000%

2Fcallback&state=Lwt50DDQKUB8U7jtfLQCVGDL9cnmwHH1 HTTP/1.1

1 OAuth 客户端是代表资源拥有者访问受保护资源的软件,它使用 OAuth 来获取访问权限。得

益于 OAuth 的设计,客户端通常是 OAuth 系统中最简单的组件,它的职责主要是从授权服务器

获取令牌以及在受保护资源上使用令牌。客户端不需要理解令牌,也不需要查看令牌的内容。相

反,客户端只需要将令牌视为一个不透明的字符串即可。OAuth 客户端可以是 Web 应用、原生

应用,甚至浏览器内的 JavaScript 应用,第 6 章将介绍这些客户端类型之间的区别。在云打印例

子中,打印服务就属于 OAuth 客户端。

2 受保护资源能够通过 HTTP 服务器进行访问,在访问时需要 OAuth 访问令牌。受保护资源需

要验证收到的令牌,并决定是否响应以及如何响应请求。在 OAuth 架构中,受保护资源对是否

认可令牌拥有最终决定权。在云打印例子中,照片存储网站就属于受保护资源。

资源拥有者是有权将访问权限授权给客户端的主体。与 OAuth 系统中的其他组件不同,资

3 源拥有者不是软件。在大多数情况下,资源拥有者是一个人,他使用客户端软件访问受他控制的

资源。至少在部分过程中,资源拥有者要使用 Web 浏览器(通常称为用户代理)与授权服务器

交互。资源拥有者可能还会使用浏览器与客户端交互,如这里所展示的,但这完全取决于客户端

性质。在云打印例子中,资源拥有者就是想要打印照片的最终用户。

4 OAuth 授权服务器是一个 HTTP 服务器,它在 OAuth 系统中充当中央组件。授权服务器对资

源拥有者和客户端进行身份认证,让资源拥有者向客户端授权、为客户端颁发令牌。某些授权服

务器还会提供额外的功能,例如令牌内省、记忆授权决策。在云打印例子中,照片存储网站拥有

自己的授权服务器,用于保护其资源

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
OAuth 2.0 极简教程 (The OAuth 2.0 Authorization Framework)
OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0 不兼容OAuth 1.0 。
一个会写诗的程序员
2020/10/29
3.3K0
OAuth 2.0 极简教程 (The OAuth 2.0 Authorization Framework)
OAuth 2实战
OAuth 2.0定义了4种许可类型,分别适用于不同的应用类型,而不是单单定义一种复杂的方法来适应不同的部署模型
yeedomliu
2022/12/03
1.3K0
OAuth 2实战
OAuth 2 深入介绍
更友好的阅读体验,请转至 OAuth 深入介绍 。 1. 前言 2. OAuth2 角色 2.1 资源所有者(Resource Owner) 2.2 资源/授权服务器(Resource/Authorization Server) 2.3 客户端(Client) 3. OAuth 2 的授权流程 4. 客户端应用注册 4.1 Client ID 和 Client Secret 5. 授权许可(Authorization Grant) 5.1 Authorization Code Flow 1. User Au
潘成涛
2018/05/28
3.7K0
认证授权:通过案例学习OAuth2
举个栗子先。小明在QQ*空间积攒了多年的照片,想挑选一些照片来打印出来。然后小明在找到一家提供在线打印并且包邮的网站(我们叫它PP*吧(Print Photo缩写 😂))。
Freedom123
2024/03/29
1580
认证授权:通过案例学习OAuth2
OAuth 2.0 授权认证详解
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/06/20
2K0
OAuth 2.0 授权认证详解
OAuth2.0概念以及实现思路简介
OAuth是一个授权规范,可以使A应用在受限的情况下访问B应用中用户的资源(前提是经过了该用户的授权,而A应用并不需要也无法知道用户在B应用中的账号和密码),资源通常以REST API的方式暴露。
AI粉嫩特工队
2020/02/13
5400
低代码如何构建支持OAuth2.0的后端Web API
OAuth 是一个安全协议,用于保护全球范围内大量且不断增长的Web API。它用于连接不同的网站,还支持原生应用和移动应用于云服务之间的连接,同时它也是各个领域标准协议中的安全层。
葡萄城控件
2022/09/08
9740
低代码如何构建支持OAuth2.0的后端Web API
OAuth2.0认证解析
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。
FB客服
2020/11/16
4.8K0
OAuth2.0认证解析
Spring Security 系列(2) —— Spring Security OAuth2
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
求和小熊猫
2022/06/30
6.4K0
【Spring底层原理高级进阶】【SpringCloud整合Spring Security OAuth2】深入了解 Spring Security OAuth2:底层解析+使用方法+实战
OAuth2(Open Authorization 2.0)是一种用于授权的开放标准协议,用于通过第三方应用程序访问用户在某个服务提供商上存储的资源,而无需共享用户的凭证(例如用户名和密码)。它允许用户授权给第三方应用程序访问受保护的资源,同时确保用户的凭证信息不被直接暴露给第三方应用程序。
苏泽
2024/03/01
3K0
【Spring底层原理高级进阶】【SpringCloud整合Spring Security OAuth2】深入了解 Spring Security OAuth2:底层解析+使用方法+实战
JustAuth 扩展 Gitea OAuth2 授权登录
今天在做自己的一个自用项目,由于不想记忆太多账号密码,也不想设置一个简单的密码并不安全,为了防止了密码忘记了每次都找,自建了 Gitea 私服,就打算直接接入第三方授权登录,Java 已经有这方面比较全的开箱即用的整合第三方登录的开源组件,就是 JustAuth,直接引入组件简单配置就能完成Github、Gitee、支付宝、新浪微博、微信、Google、Facebook、Twitter、StackOverflow等国内外数大多数主流的第三方平台授权登录策略。
Lcry
2025/05/11
1530
JustAuth 扩展 Gitea OAuth2 授权登录
Oauth2协议
第三方认证技术方案最主要是解决认证协议的通用标准问题,因为要实现跨系统认证,各系统之间要遵循一定的接口协议。
大忽悠爱学习
2021/12/07
1.4K0
Oauth2协议
4A 安全之授权:编程的门禁,你能解开吗?
在安全管理系统里面,授权(Authorization)的概念常常是和认证(Authentication)、账号(Account)和审计(Audit)一起出现的,并称之为 4A。就像上一文章提到的,对于安全模块的实现,最好都遵循行业标准和最佳实践,授权也不例外。
phoenix.xiao
2024/04/18
1830
4A 安全之授权:编程的门禁,你能解开吗?
OAuth 详解<1> 什么是 OAuth?
从高层次开始,OAuth 不是API或服务:它是授权的开放标准,任何人都可以实施它。
用户1418987
2023/04/10
5.2K0
OAuth 详解<1> 什么是 OAuth?
使用OAuth2保护API
OAuth2是一种授权框架,用于保护API和其他Web资源。它使客户端(应用程序或服务)可以安全地访问受保护的资源,而无需暴露用户凭据(例如用户名和密码)。
堕落飞鸟
2023/04/13
1.2K0
OAuth2.0 认证
密码模式(Resource owner password credentials)流程
谢公子
2022/01/20
1.6K0
OAuth2.0 认证
OAuth 2.0 的探险之旅
OAuth 2.0 全称是 Open Authorization 2.0, 是用于授权(authorization)的行业标准协议。OAuth 2.0 专注于客户端开发人员的简单性,同时为 Web 应用程序、桌面应用程序、移动设备应用等提供了特定的授权流程。它在2012年取代了 OAuth 1.0, 并且 OAuth 2.0 协议不向后兼容 OAuth 1.0。
全球技术精选
2021/11/12
1.8K0
OAuth 2.0 的探险之旅
Spring Security 与 OAuth2 介绍
OAuth2 角色 resource owner:资源所有者(指用户) resource server:资源服务器存放受保护资源,要访问这些资源,需要获得访问令牌(下面例子中的 Twitter 资源服务器) client:客户端代表请求资源服务器资源的第三方程序(下面例子中的 Quora)客户端同时也可能是一个资源服务器 authrization server:授权服务器用于发放访问令牌给客户端(下面例子中的 Twitter 授权服务器) OAuth2 工作流程例子 客户端 Quora 将自己注册到授
朝雨忆轻尘
2019/06/18
1.5K0
OAuth2.0系列博客教程汇总
OAuth 1.0协议(RFC5849)作为一个指导性文档发布,是一个小社区的工作成果。 本标准化规范在OAuth 1.0的部署经验之上构建,也包括其他使用案例以及从更广泛的IETF社区收集到的可扩展性需求。
SmileNicky
2022/07/28
6640
OAuth2.0系列博客教程汇总
认识并理解OAuth 2.0
OAuth 2.0 是一个行业标准的授权协议,被广泛用于各种 Web 应用和服务中。这个协议让用户能够授权一个第三方应用访问其账号中的特定信息,而无需分享他们的密码。在此文章中,我们将深入了解 OAuth 2.0 的工作原理,并用 Go 语言来演示其应用。
运维开发王义杰
2023/08/10
4210
认识并理解OAuth 2.0
相关推荐
OAuth 2.0 极简教程 (The OAuth 2.0 Authorization Framework)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档