使用 Spring 安全性时,oauth 范围和角色之间有什么区别吗?

Is there any difference between oauth scopes and roles when using Spring Security?

当使用 Spring 安全性通过 oauth 保护 API 时,范围和角色之间有什么区别吗?

例如,当使用非基于 oauth 的基于角色的授权时,我可能有一个名为 john 且角色为 admin 的用户。

如果我使用的是 oauth,那么 john 似乎只会使用范围 admin

我的思考方式正确吗?

通常,您会使用范围来指示用户允许客户端应用程序的权限。想想 Facebook 如何询问用户是否允许某个第三方访问他的资源,例如:姓名、电子邮件、个人资料、朋友列表等。另一方面,您可以使用角色来表示用户是否只是普通用户或管理员。

所以经验法则是:如果它是关于用户授予客户端应用程序访问 资源 的权限,则使用范围来表示所需的权限。否则使用角色来表示根据用户类型的权限。