gpt4 book ai didi

rest - 基于数据过滤而非请求授权的访问控制

转载 作者:行者123 更新时间:2023-12-01 09:26:15 25 4
gpt4 key购买 nike

在多用户服务中控制访问的标准方法是根据需要提供尽可能多的服务方法,其中每个服务方法都有具体的结果和访问权限。

例如,

  1. 版主 有权调用 GetModerationAwaitingPosts 服务方法来访问任何等待审核的访问者的帖子

  2. Visitor 有权调用 GetOwnedPosts 服务方法以仅访问他自己的帖子,包括草稿和等待审核的帖子

  3. Visitor 有权调用 GetModeratedPosts 服务方法以仅访问所有访问者的审核帖子

但可能还有另一种方法 - 单一服务方法 GetPosts 来请求允许请求者查看的帖子。

  1. 任何登录用户都有权调用此方法。

  2. 帖子首先根据调用者的角色进行过滤。

  3. 然后根据 GetPosts 方法中传递的参数或在客户端过滤帖子。

例如,通过查询拦截器在 WCF 数据服务中使用这种方法。

如何在不同的架构和方法(如 SOA、REST、CQRS)中命名和处理基于用户内部服务方法的数据过滤方法?是固溶体吗?

是否有任何书籍/文章详细考虑了这些方法之间的差异?

对于我来说,当请求的结果取决于请求者时,我发现这真的很奇怪和不寻常。

最佳答案

是的,有一种称为基于属性的访问控制(ABAC,)的访问控制范例,它使用有关用户的信息(角色、部门、年龄、位置...)实现基于数据、基于上下文的授权。 ) 关于资源(所有者、分类、类型...)操作(查看、编辑、删除)和上下文(时间、IP 地址...)

ABAC 将允许您实现政策,例如:

  • 医疗用例
    • 医生可以查看分配给他们的患者的医疗记录
    • 护士可以在同一部门编辑患者的医学日志
  • 财务用例
    • 出纳员可以在他们的分行查看这些客户的账户
    • 出纳员可以在其批准限额内批准转账

ABAC 提供如下所示的架构。

ABAC Architecture - Axiomatics

在架构中,您有 PEP 或策略执行点的概念,您可以使用它来保护来自 GUI、API、Web 服务、微服务、ESB 和数据库的任何内容。

PEP 调出处于架构核心的 PDP 或策略决策点。 PDP 使用一组策略来确定是应该授予还是拒绝访问。它还可以使用属性、PIP 或策略信息点的外部来源,以帮助确定是否确实应该授予访问权限。

今天只有一种语言实现了 ABAC。这种语言称为 XACML ( )。 XACML 为您提供:

  • 架构
  • 政策语言
  • 请求/响应方案

使用 XACML,您可以创建 JSON 授权请求,将它们发送到 PDP 并获得返回的 JSON 响应。这是一种获取响应的极其轻量级的方式。

这意味着您可以

  • 授予或拒绝对给定记录的访问权限,或者
  • 按照您的要求过滤用户可以访问的记录

关于rest - 基于数据过滤而非请求授权的访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40583730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com