Wolkenkit:授权和用户角色的 ACL
Posted
技术标签:
【中文标题】Wolkenkit:授权和用户角色的 ACL【英文标题】:Wolkenkit: ACLs for authorization and user roles 【发布时间】:2018-02-09 03:19:54 【问题描述】:我正在尝试了解如何扩展 wolkenkit 身份验证层。
假设我想要具有不同角色的用户:普通、版主和管理员。
普通用户可以查看和修改自己的内容,但不允许修改其他用户的内容。
版主用户可以修改所有条目,但除了自己的内容外,无权删除任何内容。
管理员用户可以修改和删除所有内容。
还有未经身份验证的 guest 用户可以阅读所有内容但不能修改任何内容。
阅读Write model: Configuring authorization 的文档,我可以通过编写以下内容来模拟guest/正常用例:
const initialState =
isAuthorized:
commands:
issue: forAuthenticated: false, forPublic: false
,
events:
issued: forAuthenticated: true, forPublic: true
;
根据我的要求,我需要在此对象中定义其他角色。类似 forModerator: true, forAdmin: true
。
还有Granting access from a command 可以在运行时更改权限,但我不确定这是否可行。即使是这样,那感觉也很hacky。
这有可能吗?
【问题讨论】:
【参考方案1】:免责声明:我是 wolkenkit 的开发者之一。
长话短说:不,不幸的是,目前这是不可能的,但此功能已在我们的路线图中。至少今天,我不能告诉你什么时候可以使用。
您最好的选择是自己做。一种方法可能是使用您的身份提供者在主持人的 JWT 中包含 moderator
声明,然后在命令处理程序中适当地处理它。
在命令处理程序中,您可以通过
访问令牌command.user.token
这样您就可以根据需要获得索赔。非常抱歉,目前没有更好的答案:-(
【讨论】:
您的路线图是否公开可见?我会对此非常感兴趣。 还没有,但我们会改变它。一旦我们将其公开,我会通知您。以上是关于Wolkenkit:授权和用户角色的 ACL的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security - 角色和 ACL 安全性是不是矫枉过正?