Security OAuth 2.0范围参数与OAuth 2.0 JWT访问\u令牌范围声明

Security OAuth 2.0范围参数与OAuth 2.0 JWT访问\u令牌范围声明,security,oauth,oauth-2.0,jwt,auth0,Security,Oauth,Oauth 2.0,Jwt,Auth0,我正在阅读以下关于授权的文章: 这让我有点困惑 Auth0使用范围声明来提及端点操作的授权 OAuth 2.0范围参数也用于相同的目的,例如Slack在以下链接中提到了它的范围: 他们的用例是什么,我什么时候更喜欢使用JWT声明范围,它是OAuth 2.0访问\u令牌的一部分(在这种情况下,访问\u令牌不是不透明的)OAuth 2.0范围参数不是OAuth 2.0范围参数,而是在规范中定义的OAuth 2.0范围参数,作为客户端应用程序请求特定访问的一种方式,然后由授权服务器通知确实授予了访

我正在阅读以下关于授权的文章:

这让我有点困惑

Auth0使用范围声明来提及端点操作的授权

OAuth 2.0范围参数也用于相同的目的,例如Slack在以下链接中提到了它的范围:


他们的用例是什么,我什么时候更喜欢使用JWT声明范围,它是OAuth 2.0访问\u令牌的一部分(在这种情况下,访问\u令牌不是不透明的)OAuth 2.0范围参数不是OAuth 2.0范围参数,而是在规范中定义的OAuth 2.0范围参数,作为客户端应用程序请求特定访问的一种方式,然后由授权服务器通知确实授予了访问权

您提到的两个场景似乎与这个用例非常一致;指定授予您的访问/权限的方法

最大的区别在于,在一种情况下使用了按值标记(JWT),而在另一种情况下使用了按引用标记(不透明)。如果令牌与JWT一样是自包含的,那么您必须将信息包含在其中,并且他们使用的声明是
范围
声明


总之,
scope
参数是一种传输您所需的访问权限和您确实被授予的访问权限的方法。此信息还需要与颁发的访问令牌关联存储。如果它是JWT,它很可能存储在令牌本身中;如果它是不透明的令牌,则很可能存储在服务器端。

规范中定义了OAuth 2.0范围参数,作为客户端应用程序请求特定访问的一种方式,然后授权服务器通知确实授予了访问权

您提到的两个场景似乎与这个用例非常一致;指定授予您的访问/权限的方法

最大的区别在于,在一种情况下使用了按值标记(JWT),而在另一种情况下使用了按引用标记(不透明)。如果令牌与JWT一样是自包含的,那么您必须将信息包含在其中,并且他们使用的声明是
范围
声明


总之,
scope
参数是一种传输您所需的访问权限和您确实被授予的访问权限的方法。此信息还需要与颁发的访问令牌关联存储。如果它是JWT,它很可能存储在令牌本身中;如果它是不透明的令牌,则很可能存储在服务器端。

因此,您的意思是范围参数与范围声明具有一对一的对应关系,范围声明在创建access_令牌后开始存在,范围参数用于请求这些声明,然后存储在JWT中(无状态)如果是不透明的访问令牌,则访问令牌或存储在服务器中,我基本上同意这种解释;我甚至不会说这是一对一的通信,因为您可能会请求一定数量的作用域,但是您只会获得所请求的作用域的子集。除此之外,是的,声明只是跟踪令牌本身中授予的作用域的一种方式。因此,您的意思是作用域参数与作用域声明有一对一的对应关系,作用域声明在创建access_令牌后就存在了,作用域参数用于请求这些声明,然后存储在JWT中(无状态)如果是不透明的访问令牌,则访问令牌或存储在服务器中,我基本上同意这种解释;我甚至不会说这是一对一的通信,因为您可能会请求一定数量的作用域,但是您只会获得所请求的作用域的子集。除此之外,是的,声明只是跟踪令牌本身中授予的作用域的一种方式。