01 | OAuth 2.0是要通过什么方式解决什么问题?
OAuth 2.0 是什么?
- 深入了解
- 翻译
- 解释
- 总结
OAuth 2.0是一种授权协议,旨在解决第三方软件访问用户数据的安全问题。通过授权机制,第三方软件只有在获得授权后才能访问用户数据,而不是直接使用用户的用户名和密码。该协议通过颁发访问令牌的方式来保护对外的Web API,成为目前Web上重要的安全手段之一。文章通过生动的例子和电商场景,向读者解释了OAuth 2.0的概念和作用,强调了其在保护用户数据安全方面的重要性。文章还详细介绍了OAuth 2.0的运转过程,以小兔软件获取用户订单信息的场景为例,阐述了授权码许可类型的流程。总结强调了OAuth 2.0的核心是授权许可和令牌机制,以及其在保护Web API和减少安全风险方面的重要性。读者通过本文可以快速了解OAuth 2.0的基本概念和运作原理,以及其在保护用户数据安全方面的重要作用。
《OAuth 2.0 实战课》,新⼈⾸单¥29
全部留言(31)
- 最新
- 精选
- inrtyx为什么要用授权码换取token,而不是直接获取token? ?
作者回复: 直接获取token的场景是有的,客户端凭据许可类型就是这样的使用场景,但是我们会在课程里面讲到,授权码许可类型是OAuth 2.0 最安全 最完备的许可类型。 以Web场景为例,第一次用户是跟第三方软件建立的“联系”,三方软件要把用户引导到平台一方去授权,这个时候用户实际上跟三方软件就失去了“联系”,平台如果这个时候直接把令牌给了三方软件,因为没了“联系”,三方软件就不能很方便的告诉用户。 关于这块更详细的内容在后面课程会着重讲到。
2020-06-291747 - Geek_aceb32我有个疑问,小兔把客户引导到京东开放平台上,如果小兔是恶意的,做了一个和京东一样的网页让用户授权,一般用户难以仔细区分,小兔不就能拿到用户的密码了吗?
作者回复: 第三方应用在官方平台上注册的时候是要签订协议的,你说的这点就属于监守自盗了,只能靠法律法规来惩治。 另外,授权服务做登录的时候,当前一般都是采用App扫码登录,只要培养了用户这样的习惯,也能规避一大部分风险发生的概率。
2020-06-30719 - gavin这里的授权服务和受保护资源服务都是京东商家开放平台(不过应该是对应授权服务和订单服务)、客户端(第三方软件)对应的是小兔软件、资源的拥有者小明通过OAuth2.0的授权码模式授权后,小兔软件可以访问对应的订单,这里有两个点,需要老师给指点一下是否理解的正确: 1. 授权码模式我一直理解其比Implicit模式的安全性主要体现在,其访问令牌是基于再次的https请求的返回值,是加密传递的,而Implicit模式的授权码是get请求参数跳转返回的,所以安全性不高。 2. OAuth2.0的授权是基于scope实现的,一个scope值会对应一些可以访问的资源,在小兔软件请求获取授权时,要声明对应scope,小明在授权页面上能够清楚的看到授权的scope是什么,对应的返回的访问凭据也应该包含scope信息。 而且凭据中也包含了小明的身份信息,这样最终授权访问的就是scope对应的小明的相关资源。
作者回复: 理解的很详细,我分别补充一些: 1、Implicit模式相当于是一个“裸”的状态,当然OAuth 2.0 是建议要通信在HTTPS的环境下,四种授权模式中最安全的就是授权码许可,令牌端点的通信是通过后端通信; 2、这里你说的“访问凭据”就是指TOKEN了,TOKEN和SCOPE的映射关系会在授权服务一侧保存;
2020-06-29213 - Edison鹏我的理解:1.通过第三方应用授权通过拿到的token和用户主动登录开放平台所获得的token是两个独立的token?
作者回复: 第三方软件能够拿到token的前提是,用户必须授权,用户授权的前提是,用户必须先登录。
2020-08-026 - 宝宝太喜欢极客时间了令牌跟sessionId有什么本质区别?
作者回复: 前者是授权,后者是认证,后面我们会详细讲,授权和认证的区别,在这里我先提前说一下:OAuth 2.0 是授权协议,不是身份认证协议。
2020-07-036 - baitaoccb请问为什么授权者授权后,不直接返回令牌?而是先返回授权码,然后第三方软件再通过授权码得到令牌?
作者回复: 以Web场景为例,第一次用户是跟第三方软件建立的“联系”,三方软件要把用户引导到平台一方去授权,这个时候用户实际上跟三方软件就失去了“联系”,平台如果这个时候直接把令牌给了三方软件,因为没了“联系”,三方软件就不能很方便的告诉用户,关于这块更详细的内容在后面课程会着重讲到。
2020-06-2935 - 扎紧绷带栋哥,我要提一个比较超前的问题,因为现在正在做一个开放平台,目前用到密码模式,第三方客户端可以通过我们平台的账号密码,访问一些数据。我的问题是,这个密码该怎样加密?可以简单说下吗
作者回复: 密码怎样加密最终还都是传输的保护【密码】的信息,当然可以采用非对称的加密算法,另外呢,加密的重点不在于加密算法本身,因加密算法无外乎刚才说的非对称和对此,重点地方在于如何管理秘钥,需要有一个秘钥管理系统。另外还是建议采用其它的授权许可类型。
2020-07-0133 - 兰正浩如何确保小兔软件只访问订单数据?
作者回复: 这个可以通过SCOPE来约束,权限控制也是OAuth 2.0实践过程中需要重点处理的,在后面的课程中都会有涉及到。
2020-06-303 - iLeGeNDoauth2 一种规范或者解决方案,还是框架?
作者回复: 规范、解决方案、框架 都有他的语境含义,也就是说在一定情况下都没有问题,都合理。比如 规范,那么它是一种授权协议规范,在协议后面加上规范没有问题;解决方案,保护Web Api的一种解决方案,没有问题;框架,授权框架,在这个框架下包含了四种角色,我们的生产组件承担了里面的角色,也没有问题。
2020-06-303 - 星夜宝宝老师能写弄一个spring boot版本的吗?
作者回复: 我们的附属例子是想用最原生的代码,来讲透OAuth 2.0的流程体系,带着“衣服”的例子,会干扰原理的讲解。
2020-06-2933