我们计划使用 JWT 解析用户对微服务的权限。但我无法找到仅基于 Quarkus 权限的解决方案。在本文中,他们重点关注每个服务中存在的角色: https: //quarkus.io/guides/security-jwt

有没有办法在Quarkus中基于JWT实现仅基于权限的授权?

背景:

我们拥有一个解耦的多租户自包含服务结构,该结构经过优化,我们可以轻松地将每个 SCS 作为自己的服务集成到另一个生态系统中。为此,我们设计了一个保留所有租户和角色的授权服务。每个 SCS 管理自己的权限,但不管理角色。他们注册到授权服务并向他公开所有权限。在授权服务内部,权限会按照角色进行分组,这样我们就可以更方便地为用户分配权限。

但对于每个 SCS 中的授权,我们希望仅使用权限,以便 SCS 不必了解/管理角色。该服务知道所提供的权限,并可以将其与所提供的 JWT 权限进行匹配。

我们想发送以下 JWT:

{
"UserData":{
   "userId":#{USER_ID},
   "email":"#{USER_EMAIL},
   "tenants": {
      "#{TENANTS_NAME}":{
         "permissions": {
            "#{PERMISSION_NAME}",
            "#{PERMISSION_NAME}"
         },
      },
   },
},
}