spring security—在构建uaa服务器时,我应该在令牌中生成什么内容?

lxkprmvk  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(150)

我已经阅读了oauth2(rfc6749),现在我想构建自己的uaa。
我选择spring授权服务器,这是我的计划。
我的本机应用使用资源所有者密码凭据授权类型。第三方软件使用授权码授权类型。但是,spring授权服务器将不支持资源所有者密码凭据授予。
因此,我将只在我的本机应用程序中使用jwt令牌。
但我在这里面临一个问题。

Collection<? extends GrantedAuthority> authorities = userDetails.getAuthorities();
if (!CollectionUtils.isEmpty(authorities)){
    for (GrantedAuthority grantedAuthority:authorities){
        scopes.add(grantedAuthority.getAuthority());
    }
}
//generate token ...

就像这样,如果是细粒度的访问控制,那么用户权限的数量就特别大。

{
 "sub": "messaging-client",
 "aud": "messaging-client",
 "nbf": 1621495065,
 "authorities": [
  "message.read",
  "message.write",
   "a1",
   "a2",
   "a3",
   ...
   ...
   ...
   //to many here
   ...
   ...
 ],
 "iss": "http://auth-server:9000",
 "exp": 1621495365,
 "iat": 1621495065,
 "jti": "49fb7601-53de-402c-b5d9-4ee328c24007"
}

在这种情况下,jwt代币仍然是一个好计划吗?
或者我应该只返回令牌中的角色吗?
我想学习英语的最佳实践 How to build a good User Account and Authentication Server ?
谢谢你的时间!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题