代码编织梦想

Oauth2的作用就是让第三方应用在资源持有者授权的情况下,通过认证服务器的认证,从而安全的在资源服务器上获得对应的资源。

 1、角色

在oauth规范中大致分为四个角色:

  • 资源所有者(resource owner)
  • 资源服务(resource server)
  • 客户端(client)
  • 认证服务(authorization server)

资源所有者提供资源,并通过授权允许客户端去访问资源。客户端得到授权后去认证服务认证并得到一个访问令牌,之后客户端就可以使用访问令牌去请求资源服务,获取想要的资源。

2、协议流程

 3、授权类型

授权许可的类型分为4种:授权码授权、隐式授权、密码凭证授权、客户凭证授权。

  • 授权码:使用一个code作为资源所有者和客户端的授权媒介,作为客户端能够通过认证服务的凭证。这样做就可以在认证过程中解耦资源所有者,想要通过认证,并不需要再次与资源所有者交流,降低了资源所有者信息暴露的风险。这是推荐的并且普遍使用的授权类型。
  • 隐式授权:通过url去识别客户端,没有授权码之类的媒介,减少了客户与资源所有者交流的过程,能够直接的获取访问令牌。由于访问令牌在url片段中传输,有安全风险,这可能会将其公开给未授权方。
  • 密码访问:使用资源所有者的密码凭证去认证,能够获得一个长期有效的令牌。风险系数高,访问权限不可控(权限同资源所有者)。这种方式只适用于高度信赖的客户端上。
  • 客户凭证授权:通常在客户端代表自己行事(客户端也是资源所有者)对受保护资源的访问时使用。

4、访问令牌

访问令牌是请求受保护资源的凭证,通常以字符串形式返回给用户。访问令牌有scope限制,以及过期时间。他替代了用户名密码形式的校验,减少了敏感信息暴露风险。

5、刷新令牌

刷新令牌是用于访问令牌无效或过期时,向认证服务请求新的访问令牌的凭证。它通常和访问令牌一起返回给客户端,但至只用于和认证服务换取访问令牌,不会被发送给资源服务。

oauth2.0 ( rfc-6749 ) 中文译文_奔奔尚的博客-爱代码爱编程_rfc6749

本文为RFC6749(OAuth2.0)的中文译文,目前正在翻译中 本文在不影响原文语义的情况下尽可能地采用更符合中文习惯的方式进行表述,如有翻译不妥当的地方请在评论中指出。 PS:有些过于简单,或者不适合翻译的内容直

构建oauth2服务器~golang语言实现_架构师波波的博客-爱代码爱编程

前言 自从我和极客时间合作的课程《微服务架构和实践160讲》上线以来,陆续收到一些学员的反馈,包括: Spring Cloud OAuth2复杂难以理解OAuth2的四个流程到底是如何实现的?课程缺乏项目架构设计和实

深入理解Spring Cloud Security OAuth2及JWT-爱代码爱编程

原文 什么是OAuth2? OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该令牌在限定时间、限定范围访问指定资源。主要涉及的RFC规范有RFC6749(整体授权框架),RFC6750(令牌使用),RFC6819(威胁模型)这几个,一般我们需

2C认证授权中心技术选型-爱代码爱编程

1. 什么是OAuth2? OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该令牌在限定时间、限定范围访问指定资源。主要涉及的RFC规范有RFC6749(整体授权框架),RFC6750(令牌使用),RFC6819(威胁模型)这几个,一般我们需要

【权限----对比】深入理解Spring Cloud Security、OAuth2、JWT-爱代码爱编程

什么是OAuth2? OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该令牌在限定时间、限定范围访问指定资源。主要涉及的RFC规范有【RFC6749(整体授权框架)】、【RFC6750(令牌使用)】、【RFC6819(威胁模型)】这几个,一般我

spring-cloud-oauth2 认证授权-爱代码爱编程

什么是OAuth2?   OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该令牌在限定时间、限定范围访问指定资源。主要涉及的RFC规范有RFC6749(整体授权框架),RFC6750(令牌使用),RFC6819(威胁模型)这几个,一般我

深入理解Spring Cloud Security OAuth2及JWT(好文章!!)-爱代码爱编程

因项目需要,需要和三方的oauth2服务器进行集成。网上关于spring cloud security oauth2的相关资料,一般都是讲如何配置,而能把这块原理讲透彻的比较少,这边自己做一下总结和整理,顺带介绍一下JWT的使用场景。 什么是OAuth2? OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAut

Oauth2-爱代码爱编程

文章目录 一. 什么是oauth21.1 理解1.2 使用场景1.3 名词定义1.4 四种模式二. 搭建授权服务器 (port:8080)2.1 引入依赖2.2 Spring Security 配置2.3 配置授权服务器三. 搭建资源服务器 (port:8081)3.1 引入依赖3.2 配置资源服务器3.3 相关资源接口四. 搭建第三方应用 (po

2020-10-15-爱代码爱编程

深入理解Spring Cloud Security OAuth2及JWT 因项目需要,需要和三方的oauth2服务器进行集成。网上关于spring cloud security oauth2的相关资料,一般都是讲如何配置,而能把这块原理讲透彻的比较少,这边自己做一下总结和整理,顺带介绍一下JWT的使用场景。 什么是OAuth2? OAuth

OAuth 2.0授权框架中文版 [1] - 简介-爱代码爱编程

OAuth 2.0授权框架中文版 [1] - 简介 1. 简介 - Introduction1.1 角色 - Roles1.2 协议流程 - Protocol Flow1.3 授权许可 - Authorization Grant1.3.1 授权码模式 - Authorization Code1.3.2 隐式授权模式 - Implicit1.3.3

可能是全网介绍 OAuth2 最详细的一篇文章(下)-爱代码爱编程

文章目录 想让 OAuth2 和 JWT 在一起愉快玩耍?无状态登录什么是有状态什么是无状态如何实现无状态JWT简介JWT 数据格式JWT 交互流程JWT 存在的问题OAuth2 中的问题改造方案授权服务器改造资源服务器改造测试原理微服务架构中的安全管理思路微服务架构为什么不建议 Cookie内部调用鉴权还要不要 Spring SecuritySp

gateway oauth2 对称加密_深入理解Spring Cloud Security OAuth2及JWT-爱代码爱编程

因项目需要,需要和三方的oauth2服务器进行集成。网上关于spring cloud security oauth2的相关资料,一般都是讲如何配置,而能把这块原理讲透彻的比较少,这边自己做一下总结和整理,顺带介绍一下JWT的使用场景。 什么是OAuth2? OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不

深入理解Spring Security OAuth2及JWT-爱代码爱编程

什么是OAuth2? OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该令牌在限定时间、限定范围访问指定资源。主要涉及的RFC规范有RFC6749(整体授权框架),RFC6750(令牌使用),RFC6819(威胁模型)这几个,一般我们需要了解的

单点登录sso与oauth2 方案_cliven_的博客-爱代码爱编程

1. SSO与OAuth2 单点登录系统 Single sign-on (SSO) : 简单来说也就是一个在登录一个系统后不需要在重复登录其他系统的一种设计思想,其中较为著名的实现时CAS系统。 OAuth2:是一个开放标准,该标准约束了一种用户让第三应用访问用户在某一个应用中的资源而无需提供用户名和密码的方式,简单来说就是一个3方应用认证和访问用户资

oauth 2.0 授权框架 rfc6749翻译_rfc 6749-爱代码爱编程

最近要设计开放平台,调研时发现很多开放平台都是基于OAuth 2.0的,于是来学习一下文档。顺带翻译一遍。 原文:https://datatracker.ietf.org/doc/html/rfc6749 OAuth