Spring oauth2 范围与权限(角色)

Spring oauth2 scope vs authorities(roles)

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

此外,

在oauth_client_detailstable中,我不确定下面的字段是什么 用于:

web_server_redirect_url, access_token_validity,refresh_token_validity

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

I noticed a client has both scope and authorities

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

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

web_server_redirect_url

这将被授权服务器用于在成功授权后将请求重定向到其原始URL或回调(授权授予)。

access_token_validity

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

refresh_token_validity

这是refresh_token过期时间。