我正在阅读以下关于授权的文章:
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范围参数
答案 0 :(得分:3)
OAuth 2.0范围参数在规范中定义为客户端应用程序请求特定访问的一种方式,然后由授权服务器通知确实授予了访问权限。
您提到的两种情况都与此用例非常一致;一种指定您被授予的访问/权限的方法。
最大的区别在于,在一种情况下,正在使用按值令牌(JWT),而另一种情况则使用按引用令牌(不透明)。如果令牌是自包含的,就像JWT一样,您必须在其中包含信息,并且他们使用的声明是scope
声明。
总之,scope
参数是一种传输所需访问权限以及您确实授予访问权限的方法。此信息还需要与发布的访问令牌相关联地存储。如果它是JWT,它很可能存储在令牌本身中;如果它是一个不透明的令牌,它很可能会存储在服务器端。