使用WSO2IS配置用户对实体的访问权限



我正在尝试实现WSO2IS进行授权。我的理解是,在WSO2领域,权限的概念广泛限制了用户对操作或资源的访问。因此,例如,如果我的应用程序是一家书店,我可以配置用户是否拥有";读取";访问广大作者,并切换他们对GetAuthor((端点的访问。但是,我需要配置用户对某些作者的访问权限。有没有一种方法可以在每个用户的基础上存储作者的白名单?我想实现的是让用户调用GetBooks((端点,只返回用户可以访问的作者写的书。

听起来有一种可能性是将这些信息存储在外部数据存储中,并实现一个自定义PIP来从该数据存储中读取。

另一种可能的选择是在用户类型上创建一个自定义属性,并将作者ID的白名单存储在每个用户的数组中。

有更好的方法吗?我不希望仅仅为了存储用户和实体id之间的关系而实现自定义的外部数据存储。XACML和政策是否可以做到这一点?是否可以让WSO2IS将这些信息粘贴在返回给我的控制器的声明上,以便我可以根据用户的允许实体ID白名单限制我的基本查询?

AFAIU您需要维护一个声明来跟踪阅读的可访问性。您可以按照文章[1]轻松创建自定义声明来跟踪它。通过这种方式,您可以参考控制器上的自定义声明来做出进一步的决定。

您必须为每个用户更新此索赔值。为此,您可以按照doc[3]使用SCIM API[2]来扩展自定义声明的SCIM端点。

[1]https://medium.com/@inthiraj1994/les-add-ad-customizedclaim-to-oidc-in-wso2-is-d871e418d6b0[2]https://is.docs.wso2.com/en/latest/develop/scim2-rest-apis/#/scim-20 api定义[3]https://is.docs.wso2.com/en/latest/develop/extending-scim2-user-schemas/#extending-scim-20-user-schemas

最新更新