首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ABAC模型中的集合中筛选拒绝的项目

从ABAC模型中的集合中筛选拒绝的项目
EN

Stack Overflow用户
提问于 2021-10-22 13:38:15
回答 1查看 94关注 0票数 1

我正在尝试在我的应用程序(微服务体系结构)中实现ABAC模型,但我有一个问题。我有一个用户U,它对集合CollectionX的一个项目X有‘拒绝’权限。我不明白,我如何实现下一种情况-用户U从CollectionX获取所有没有项目X的项目。我如何在ABAC模型中实现这种情况?

EN

回答 1

Stack Overflow用户

发布于 2021-11-09 17:10:17

在XACML (ABAC标准)中,最自然的方法是使用Multiple Decision profile (MDP) with repeated categories (单个XACML请求中具有相同类别的多个< Attributes >)。如果PDP支持MDP (例如AuthzForce),您的PEP可以发出XACML请求,如下所示(为简洁起见,此处的简化形式不是实际的XACML):

资源主题类别(< Attributes >) /-id=用户身份,例如用户U (< Attribute >)资源资源类别(< Attributes >) /

  • -id= item 1(具有IncludeInResult=true)
  • ...类别(< Attributes >)/
  • -id= item 2等,用于CollectionX

中的所有项目

因此,在同一个XACML请求中,您将为集合中的每个项目重复资源类别的< Attributes >元素和一个资源-id< Attribute >(使用IncludeInResult=true)。

PDP会将其作为多个XACML请求进行处理:

资源请求1:主题类别/主题-id= U;资源类别/-id=项目1资源2:主题类别/主题-id= U;资源类别/

  • -id=项目2 (IncludeInResult=true)
  • ...集合X

中的所有项等

..。并使用多个< Result >回复XACML < Response >,上面的每个请求对应一个,仅包括带有资源的属性(即本例中的IncludeInResult=true -id):

资源类别结果1: Decision=Permit,属性:资源类别/-id=物料1

  • 结果2: Decision=Permit,属性:资源类别/资源-id=物料X
  • ...
  • ... N: Decision=Deny,属性:资源类别/资源-id=物料
  • 集合X

中的所有项等

只要PDP支持XACML的JSON Profile (例如AuthzForce),你就可以用XML或JSON来做这件事。

如果PDP是远程的,我强烈建议在PEP中缓存决策结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69677887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档