Spring oauth2范围与权限(角色)

时间:2015-08-19 10:19:50

标签: spring-security spring-security-oauth2

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

此外,

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

web_server_redirect_url,access_token_validity,refresh_token_validity

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

1 个答案:

答案 0 :(得分:17)

  

我注意到客户有范围和权限

客户端只有范围,但我们可以考虑/将其用作权限(角色)。这是因为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到期时间。