Создание авторизации клиентов для мультитенантной системы - PullRequest
0 голосов
/ 17 июня 2020

У нас есть веб-приложение, которое обслуживает несколько клиентов.
Теперь существует несколько direct клиентов, соответствующих этим клиентам, но 1 клиент может работать для нескольких клиентов.
Наша текущая система авторизации работает на уровне клиента, но мы видели проблемы: один клиент, который был вызван программной системой, принадлежащей tenant1, получил записи из базы данных, принадлежащие tenant2, и изменил их.
Поток был:

Tenant1 app -> Client -> Our web service

Теперь мы планируем продолжить strict auth now, где мы просим нашего клиента:

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

Может ли кто-нибудь помочь с любыми предложениями?

PS: Не стесняйтесь комментировать для ясности.

1 Ответ

0 голосов
/ 09 июля 2020

Вам необходимо иметь Tenant Id во всех родительских таблицах в базе данных. Также будет таблица, которая сопоставляет пользователей с арендаторами (и ролями). Это может быть отношение "один ко многим". Пример пользователя «A» может иметь роль администратора с арендатором 1. Но может иметь другую роль с арендатором 2. После того, как вы это настроите, у вас будет основание, из которого можно получать данные в контексте арендатора (идентификатор арендатора - это должен параметр для всех запросов). Дополнительно вы можете наложить ограничения на аутентификацию. Например, если пользователь вне Tenant 1 пытается получить доступ к веб-сайту Tenant One, вы можете заблокировать его / ее. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...