使用 Spring Security 时,oauth 范围和角色之间有啥区别吗? [复制]

Posted

技术标签:

【中文标题】使用 Spring Security 时,oauth 范围和角色之间有啥区别吗? [复制]【英文标题】:Is there any difference between oauth scopes and roles when using Spring Security? [duplicate]使用 Spring Security 时,oauth 范围和角色之间有什么区别吗? [复制] 【发布时间】:2017-04-19 03:23:34 【问题描述】:

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

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

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

我的想法是否正确?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于使用 Spring Security 时,oauth 范围和角色之间有啥区别吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在没有 servlet api 的 webflux 项目中使用 OAuth2 和 Spring Security OAuth2 和 reactor netty

具有密码授予类型的 WebClient 的 Spring Security OAuth 客户端不要求新令牌

使用 spring-session 和 spring-cloud-security 时,OAuth2ClientContext (spring-security-oauth2) 不会保留在 Redis

在运行时延迟初始化 Spring Security + 重新加载 Spring Security 配置

将 spring-security 与 spring-webflux 一起使用时禁用 WebSession 创建

在 grails 中使用 spring-security 插件时出错