【发布时间】: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