使用Appsync/Firebase进行细粒度访问控制



当需要细粒度访问控制时,使用Appsync/Firebase创建一个完全"无服务器"的应用程序是个好主意吗?

我试着用Firebase和AppSync构建一个应用程序,感觉这些解决方案有点让我瘫痪,我开始想,也许我仍然在用"旧"的方式来解决问题,这就是让我瘫痪的原因,而不是工具。

我最头疼的是访问控制。Firebase有"Firebase规则",AppSync有"VTL"(Apache Velocity模板语言(,两者都提供了相对较好的解决方案,"Firebase准则"更简单、更干净,但VTL更健壮,因为它基本上是一种编程语言。

问题是,我试图根据权限的"集合/表"授予用户访问数据库中文档的权限。因此,每个用户在"集合/表"中都有一个具有细粒度权限的文档,我需要阅读该文档,以了解他是否有权访问他试图读取/写入的资源。

有了firebase和AppSync,我可以读取DB,但两者都有其局限性:

  • Firebase规则有请求限制。如果用户具有多个"权限组">
  • AppSync更灵活,但仍然有限,如果我要写一些逻辑,我宁愿使用我选择的语言,而不是VTL。此外,我宁愿将这些代码放在我的项目中,而不是只在云中通过GUI访问

所以,最终,感觉这两种解决方案都驱使我在它们之前有另一层,以便做更复杂的事情,所以它可以是功能,也可以是整个应用程序。但是,为什么我需要他们所有的API呢?在Appsync/Firebase之前有另一层基本上迫使我重新实现GraphQL/Firebases API,然后,为什么不使用另一个工具构建它呢?

那么,我做错了吗?在AppEngine或类似的解决方案上部署一个应用程序会更好吗(从而失去功能的优势(?

注:很抱歉,读了这么多还不清楚,英语是我的第一语言。

AWS AppSync最近添加了管道解析程序,这听起来是您用例的完美解决方案。GraphQL解析器由一系列解析器函数组成。您对文档集合表的身份验证检查可以作为一个可重用函数来实现。

看看"管道解析程序"教程,看看它是否满足您的需求。

相关内容

  • 没有找到相关文章

最新更新