我正在阅读以下关于授权的文章:
https://auth0.com/docs/quickstart/backend/aspnet-core-webapi/02-authorization
这让我有点困惑。
Auth0使用范围声明来提及端点操作的授权。
OAuth 2.0作用域参数也用于相同的目的,例如Slack在以下链接中提到了它的作用域:
https://api.slack.com/docs/oauth-scopes
他们的用例是什么?我什么时候更喜欢使用JWT声明范围,它是OAuth 2.0 access_token的一部分(在这种情况下,access_toke不是不透明的),而不是OAuth 2.0scope参数
OAuth 2.0作用域参数在规范中定义为客户端应用程序请求特定访问的一种方式,然后由授权服务器通知实际授予的访问权限。
您提到的两个场景似乎都与这个用例非常一致;一种指定授予您的访问权限的方法。
最大的区别是,在一种情况下使用按值令牌(JWT),而另一种情况使用按引用令牌(不透明)。如果令牌是自包含的,就像JWT的情况一样,那么您必须在其中包含信息,并且他们使用的声明是scope
声明。
总之,scope
参数是一种传输所需访问权限和实际授予的访问权限的方式。该信息还需要与所发布的访问令牌相关联地存储。如果它是JWT,它很可能会存储在令牌本身中;如果它是一个不透明的令牌,那么它很可能存储在服务器端。