OAuth 2.0范围参数与OAuth 2.0 JWT access_token范围声明

时间:2017-01-13 09:01:15

标签: security oauth oauth-2.0 jwt auth0

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

https://auth0.com/docs/quickstart/backend/aspnet-core-webapi/02-authorization

有点让我感到困惑。

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

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

https://api.slack.com/docs/oauth-scopes

他们的用例是什么,我何时更喜欢使用作为OAuth 2.0 access_token的一部分的JWT声明范围(在这种情况下,access_token不是不透明的)而不是OAuth 2.0范围参数

1 个答案:

答案 0 :(得分:3)

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

您提到的两种情况都与此用例非常一致;一种指定您被授予的访问/权限的方法。

最大的区别在于,在一种情况下,正在使用按值令牌(JWT),而另一种情况则使用按引用令牌(不透明)。如果令牌是自包含的,就像JWT一样,您必须在其中包含信息,并且他们使用的声明是scope声明。

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