解析服务器:多租户,多用户应用程序和AP的

时间:2018-07-01 23:05:50

标签: parse-platform acl multi-tenant roles multi-user

我正在开发一个仓库管理应用程序,它将有多个公司共享在Back4App上托管的公共数据库。每个公司将有多个用户。为了使应用程序的某些功能正常工作,给定公司的用户将需要访问另一公司“拥有”的数据。

对于数据安全性,重要的是,不仅仅是查询会过滤掉其余结果。例如,一家公司可能选择只显示其库存中的某些项目以选择其他公司。

考虑到多公司,多用户的情况,“角色”是否合适?我将不得不为使用该系统的每个公司创建一个“角色”。可能有几百家公司。给定公司的用户将被分配给该公司的角色。

角色是执行此操作的正确方法吗?还是我忽略了另一种方法?

2 个答案:

答案 0 :(得分:0)

最佳实践之一是来自仪表板中用户的控件,Parse Server讨论了两个要点,即:

  • 类级别权限
  • ACL的

在类级别权限中,开发人员可以在此级别强制执行安全措施,这将限制客户端应用程序可以在何时以及如何在Parse上访问和创建数据的方式和时间,例如:

  • 客户端应用程序可以在Parse上创建新的类
  • 客户端应用程序可以将字段添加到类
  • 客户端应用程序可以在Parse上修改或查询对象

您可以在以下链接中了解有关此配置的更多信息:

https://docs.parseplatform.org/js/guide/#configuring-class-level-permissions

控制谁可以访问哪些数据的最简单方法是通过访问控制列表(通常称为ACL)。 ACL背后的想法是,每个对象都有一个用户和角色列表以及该用户或角色拥有的权限。

我建议您在Parse Server的这份令人惊奇的指南中阅读更多有关它的信息

https://docs.parseplatform.org/js/guide/#access-control-lists

在您的情况下,您需要同时使用安全性和ACL中的两个要点,才能为对象授予读取或写入权限。例如,下面的行:

acl.setRoleWriteAccess("admins", true);

我在这里阅读,我从Parse Server中检查了一个令人惊奇的地方,那就是“需要身份验证权限”,此CLP阻止任何未经身份验证的用户执行受CLP保护的操作,您可以在以下位置阅读有关此可能性的更多信息下面的链接:

https://docs.parseplatform.org/js/guide/#requires-authentication-permission-requires-parse-server---230

如果我能够检查有关安全性的更多链接,我将与您分享:)

答案 1 :(得分:-1)

在Back4app,您可以在每个项目中添加协作者,并设置一些有关团队在此过程中可以访问的角色。

由于每个帐户最多可以拥有50个应用程序,因此您无需注册大量电子邮件即可访问每个项目,因此,作为所有者,您只能在一个帐户中创建所有应用程序。

注意:协作者将能够访问您的整个数据库,无论您可以限制它们什么,都不会影响他们在数据库中进行读写。