我正在开发一个仓库管理应用程序,它将有多个公司共享在Back4App上托管的公共数据库。每个公司将有多个用户。为了使应用程序的某些功能正常工作,给定公司的用户将需要访问另一公司“拥有”的数据。
对于数据安全性,重要的是,不仅仅是查询会过滤掉其余结果。例如,一家公司可能选择只显示其库存中的某些项目以选择其他公司。
考虑到多公司,多用户的情况,“角色”是否合适?我将不得不为使用该系统的每个公司创建一个“角色”。可能有几百家公司。给定公司的用户将被分配给该公司的角色。
角色是执行此操作的正确方法吗?还是我忽略了另一种方法?
答案 0 :(得分:0)
最佳实践之一是来自仪表板中用户的控件,Parse Server讨论了两个要点,即:
在类级别权限中,开发人员可以在此级别强制执行安全措施,这将限制客户端应用程序可以在何时以及如何在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保护的操作,您可以在以下位置阅读有关此可能性的更多信息下面的链接:
如果我能够检查有关安全性的更多链接,我将与您分享:)
答案 1 :(得分:-1)
在Back4app,您可以在每个项目中添加协作者,并设置一些有关团队在此过程中可以访问的角色。
由于每个帐户最多可以拥有50个应用程序,因此您无需注册大量电子邮件即可访问每个项目,因此,作为所有者,您只能在一个帐户中创建所有应用程序。
注意:协作者将能够访问您的整个数据库,无论您可以限制它们什么,都不会影响他们在数据库中进行读写。