【问题标题】:Fine grained authorization in ServiceStack APIServiceStack API 中的细粒度授权
【发布时间】:2018-01-16 10:55:36
【问题描述】:

我正在使用 ServiceStack 开发一个大型 API 界面,并且正在解决授权问题。最终用户需要能够在 API 请求级别自定义赋予各种角色的权限,即。该角色可以调用哪些请求消息/http 动词。

出于这个原因,我计划将角色排除在代码之外,并且不使用 ServiceStack 的 RequiresRole 属性。我计划将角色/权限关系存储在数据库中。

我也使用 JWT。由于 API 的规模很大,我担心将 RequiresPermission 属性与 ServiceStack 的内置权限系统一起使用,因为我知道权限填充在 JWT 中,并且我不会过多地膨胀标题。用户可能拥有数百甚至数千个权限。

我正在考虑

1) 在 JWT 中存储用户角色声明而不是权限声明。
2) 创建一个自定义请求过滤器,根据用户在 JWT 中的角色检查用户是否具有所需的权限(来自缓存的 DB 表)。

这听起来像是在 ServiceStack 中实现我的授权需求的合理方法吗?我可能会遗漏哪些缺点?有没有办法使用内置的 ServiceStack 授权工具来实现我的目标,而无需使用自定义请求过滤器或过度膨胀我的 JWT?

【问题讨论】:

    标签: authorization servicestack


    【解决方案1】:

    是的,这听起来是一种合理的方法,如果您使用的是 JWT,您应该注意用户拥有的角色/权限的数量,因为它会影响每个请求的有效负载大小,因此使用断开连接的应用级权限来自 ServiceStack 的角色/权限是一个很好的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-20
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 2016-05-23
      • 2021-06-02
      相关资源
      最近更新 更多