05 | 如何安全、快速地接入OAuth 2.0?
构建第三方软件应用
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了如何安全、快速地接入OAuth 2.0,从第三方软件和受保护资源服务的角度出发,讲解了构建第三方软件应用的流程和关键内容。作者强调了注册信息的重要性,包括静态注册和填写必要信息。此外,作者介绍了引导授权的过程,强调了第三方软件需要引导用户进行授权,获取访问令牌后才能代表用户访问数据。文章还详细讲解了使用访问令牌的方式,包括三种官方规范的请求方式,并提出了采用Authorization方式传递令牌的建议。重点介绍了使用刷新令牌的重要性,包括定时检测和“现场”发现两种方式,并强调了刷新令牌的一次性使用和有效期。总的来说,本文通过具体的案例和代码示例,详细解释了第三方软件接入OAuth 2.0的流程和关键注意事项,为读者提供了实用的技术指导。文章内容涵盖了OAuth 2.0的核心原理,以及第三方软件和受保护资源系统在接入OAuth 2.0时应该注意的方面,对读者快速了解OAuth 2.0的关键概念和技术要点具有重要参考价值。
《OAuth 2.0 实战课》,新⼈⾸单¥29
全部留言(34)
- 最新
- 精选
- 奕刷新令牌是一次性的,使用之后就会失效 ---------------------- 在获取访问令牌的时候同时也会把 刷新令牌 返回, 后面可以使用 刷新令牌 重新获取访问令牌,然后也会同时获取新的刷新令牌,这样的话不是可以一直获取访问令牌了吗?
作者回复: 刷新令牌的有效期不会变,而且它本来就比访问令牌的有效期长;刷新令牌的值变是为了安全,因为你已经使用过一次了。
2020-07-1127 - hhhh“建议在平台和第三方软件约定好的前提下,优先采用 Post 表单提交的方式。”,如果这样,每个请求都需要带有token,那三方软件和开放平台只能使用post方式通信了吗?
作者回复: 是的
2020-07-0936 - iLeGeND老师以后要不要出一门spring security的课
作者回复: 暂时 还没有计划哈
2020-07-0925 - bigben第三方调用授权服务也是通过api网关的吧?
作者回复: 开放平台对外主要有两个系统一个是API网关,一个是授权系统。授权(生成TOKEN)是通过请求授权系统,鉴权(识别TOKEN)是调用到API网关,因为使用TOKEN的时候就是发生在通过API网关调用开放API的时候,API网关再去跟授权系统通信。
2020-07-0932 - 在路上老师 令牌采用定时刷新的方式,令牌永远不会过期,除非用户主动操作,这样理解是都正确。
作者回复: 刷新令牌也有有效期,所以不会有访问令牌永远不过期的情况发生的。
2020-07-1961 - 暖色浮余生Oauth2 的 scope权限检验和springsecurity的权限检验有什么区别呢,这两个不是通常放在一块么,做的东西应该差不多吧
作者回复: Oauth2,是一种【协议】,安全授权协议; Spring Security Oauth2,是一种技术【框架】,它是依据Oauth2协议开发出来的; Spring Security,是一种技术【框架】,一种提供声明式的安全访问控制解决方案的安全框架,跟OAuth没有直接关系; scope权限检验,大家思想方式都是解决权限访问问题。
2020-07-0921 - 土豆老师我想请下,redistoken的缺点是只能单点,不支持多点,jwt是在认证服务器加密一次,在各个资源服务器随时解密,没有失效时间,如果配置多资源服务器,是不是要考虑私钥的区分,两个都有缺点,现在主流的使用方式是哪种,希望老师解惑
作者回复: JWT也是有失效时间的。如果有多资源服务器的时候,这种情况下最好有一个网关层来统一处理。
2020-07-16 - suhuijie对于服务市场的第三方软件,流程如何处理的,那块讲述的不清晰
作者回复: 服务市场这个是补充了一块内容,服务市场的定义咱们课程里面就是说小兔打单软件放在上面售卖,小明购买了之后就可以直接通过服务市场的【我的服务】使用,因为咱们之前一直是讲小明直接访问小兔的地址。 “作为第三方开发者来构建第三方软件的时候,在授权码环节除了要接收授权码 code 值之外,还要接收用户的订购相关信息,比如服务的版本号、服务代码标识等信息。” OAuth 2.0 的授权码流程不会变,是跟我们已知的一样,只不过这次是从【我的服务】点进去的,补充上面版本号、服务代码等信息是服务相关的属性。
2020-07-15 - hom请问下老师:刷新令牌的作用是什么?为什么不直接延长访问令牌的初始化时效,而是需要去手工刷新呢?
作者回复: 出于安全的考虑我们让访问令牌的有效时间一般比较短,刷新令牌的作用是在访问令牌失效的情况下来请求获取新的访问令牌。
2020-07-14 - 马以思考题:方法1:根据服务的响应时间,两个access_token要有一个重叠窗口期,过了重叠窗口期,旧的token就失效了;方法2:或者说和mysql数据库事务控制一样,在用refresh_token 换取 access_token 这里记录一个节点(水位线);如果请求在这个节点之前,那么就的token就还有效,如果请求在这个节点之后,旧的token就失效;2020-07-09119