gpt4 book ai didi

security - 使用 GraphQL 实现 "Attribute Based Access Control"的方法

转载 作者:行者123 更新时间:2023-12-04 16:08:13 24 4
gpt4 key购买 nike

虽然 GraphQL 提到安全性应该委托(delegate)给底层业务逻辑,但 GraphQL 的性质非常适合安全性。

在 GraphQL 中,Query 可以有一个解析方法,每个字段也可以有一个解析方法。在某种程度上,如果我们为每个查询及其结果的所有字段提供解析器,则我们正在遍历图。

现在,“基于属性的访问控制”以其定义跨域安全策略的方式越来越受欢迎。

  • 主题
  • 资源
  • 行动
  • 环境

  • 实现“基于属性的访问控制”的一种方法是,它修改被触发的查询以仅获取符合条件的数据。这可以通过包装器解析器来完成。

    可以在 GraphQL 中实现“基于属性的访问控制”的第二种方法是使用字段级解析器来决定是否公开该字段。

    我对社区的问题是在 GraphQL 中实现“基于属性的访问控制”的各种方法有哪些,尤其是利用 GraphQL 的优势

    干杯,
    罗希特

    最佳答案

    有两种方法可以使用 ABAC 来保护数据——无论是 GraphQL; SQL; HQL ... - 就像你说的:

  • 要么修改传入查询,以便修改后的查询仅检索授权数据。例如,这就是某些数据库代理的工作方式。它拦截 'SELECT a, b, c FROM t'并将其转换为 'SELECT a, b, c FROM t WHERE...' Axiomatics 用它的数据访问过滤器来做到这一点。
  • 或者您配置底层系统,使其只允许在正确的情况下访问。我们称之为供应。例如,多年前,MySQL 有一个称为 FGAC 的功能 - 可用于实现该效果的细粒度访问控制。

  • 1. 的好处是它是非侵入性的。它位于数据源的前面,原则上可以用于多种类型的数据源,例如SQL, GraphQL... 2.的好处是不需要代理组件,配置是目标系统原生的。

    无论如何,是的,由于不同实体之间的关系,图数据库非常适合 ABAC。在某种程度上,关系数据库也有,但可能不那么明显。

    关于security - 使用 GraphQL 实现 "Attribute Based Access Control"的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47718268/

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