【问题标题】:Spring oauth2 scope vs authorities(roles)Spring oauth2 范围与权限(角色)
【发布时间】:2015-11-12 14:10:28
【问题描述】:

我正在使用 Spring Security OAuth2,目前实现了 client_credentials 和密码授权类型。我注意到一个客户既有范围又有权限。有人可以解释一下有什么区别吗?更具体地说,我使用的是 JDBCTokenStore,并且数据库模式有一个 oauth_client_details 表。

还有,

在 oauth_client_details 表中,我不确定以下字段是什么 用于:

web_server_redirect_url、access_token_validity、refresh_token_validity

一些澄清将非常有帮助和赞赏。

【问题讨论】:

  • 我也有同样的问题。 Found Springs presentation on slideshare,它说他们区分范围和权限:用户令牌使用范围,客户端令牌 - 权限。但我找不到任何理由这样做。你终于找到答案了吗?
  • 我发现它没有被定义——这完全取决于你,实现 OAuth2 服务器的人。下面的帖子有一个很好的例子,说明了范围可以用于什么。

标签: spring-security spring-security-oauth2


【解决方案1】:

我注意到一个客户既有范围又有权限

客户端只有范围,但我们可以考虑/将其用作权限(角色)。这是因为 OAuth2 规范没有解释范围的具体用法。

考虑到这一点,用户授权 Twitter 将用户的推文发布到 Facebook。在这种情况下,Twitter 将有一个范围 write_facebook_status。虽然用户有权更改自己的个人资料,但这并不意味着 Twitter 也可以更改用户的个人资料。换句话说,范围是客户权限/角色,而不是用户的权限/角色。

web_server_redirect_url

授权成功后,授权服务器将使用它来将请求重定向到其原始 URL 或回调(授权授予)。

access_token_validity

这是 token_access 过期时间,以秒为单位。设置为 -1 或 0 表示无限。如果您将其设置为 60,则 1 分钟后您的 token_access 将无效。您必须通过授权过程请求新令牌或使用 refresh_token。

refresh_token_validity

这是 refresh_token 过期时间。

【讨论】:

  • “因为 OAuth 规范没有解释范围的具体用法。”。请解释你为什么这么认为。也许一些链接可以进一步解释它?
  • @AlikElzin-kilaka 你可以在这里找到它tools.ietf.org/html/rfc6749#section-3.3
猜你喜欢
  • 2015-09-29
  • 2016-10-11
  • 2018-07-12
  • 2016-05-13
  • 1970-01-01
  • 2014-09-15
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
相关资源
最近更新 更多