Parse Server: мультитенантное, многопользовательское приложение и точки доступа - PullRequest
0 голосов
/ 02 июля 2018

Я работаю над приложением для управления складом, в котором несколько компаний будут использовать общую базу данных, размещенную на Back4App. У каждой компании будет несколько пользователей. Для работы некоторых функций приложения пользователям данной компании потребуется доступ к данным, «принадлежащим» другой компании.

Для безопасности данных важно, чтобы не только запросы отфильтровывали остальные результаты. Например, компания может выбрать для отображения других компаний только определенные элементы в своем инвентаре.

Учитывая многопрофильный, многопользовательский сценарий, будут ли "роли" подходящими? Мне пришлось бы создать «роль» для каждой компании, использующей систему. Там может быть несколько сотен компаний. Пользователи данной компании будут назначены на роль этой компании.

Являются ли Роли правильным способом сделать это или есть другой метод, который я пропускаю?

Ответы [ 2 ]

0 голосов
/ 20 июля 2018

Одной из передовых практик является контроль со стороны пользователя в вашей панели инструментов, Parse Server говорит о двух важных моментах, а именно:

  • Разрешения на уровне класса
  • ACL,

В разрешениях уровня класса, разработчик может применять меры безопасности на этом уровне, будет ограничено то, как и когда клиентские приложения могут получать доступ и создавать данные в Parse, например:

  • Клиентское приложение может создавать новые классы при разборе
  • Клиентское приложение может добавлять поля в классы
  • Клиентское приложение может изменять или запрашивать объекты при разборе

Подробнее об этой конфигурации вы можете прочитать по ссылке ниже:

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

Самый простой способ контролировать, кто может получить доступ к данным, - это списки контроля доступа, обычно известные как ACL. Идея ACL заключается в том, что у каждого объекта есть список пользователей и ролей, а также то, какие разрешения имеет этот пользователь или роль.

Я рекомендую вам прочитать больше об этом в этом удивительном руководстве от Parse Server:

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

В вашем случае вам нужно использовать обе точки из Security, используя ACL, вы можете дать для объекта разрешение на чтение или запись. Пример строки ниже:

acl.setRoleWriteAccess("admins", true);

Я читал здесь, и я проверял удивительный момент от Parse Server, то есть «РАЗРЕШЕНИЕ НА ТРЕБУЕМУЮ АУТЕНТИФИКАЦИЮ», этот CLP не позволяет любому не прошедшему проверку подлинности пользователю выполнять действие, защищенное CLP, подробнее об этой возможности можно прочитать на ссылка ниже:

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

Если я смогу проверить больше ссылок о безопасности, я поделюсь с вами:)

0 голосов
/ 19 июля 2018

В Back4app вы можете добавлять соавторов в каждый проект и устанавливать некоторые роли в отношении доступа группы в этом процессе.

Поскольку можно иметь до 50 приложений на одну учетную запись, вам не нужно регистрировать большое количество писем для доступа к каждому проекту, вы, как владелец, можете создать все из них только в одной учетной записи.

ПРИМЕЧАНИЕ: соавторы смогут получить доступ ко всей вашей базе данных, и не имеет значения, что вы можете ограничить их, это не повлияет на их чтение / запись в вашей базе данных.

...