Русский
  • organizations
  • collaboration
  • identity
  • user management
  • authentication
  • authorization

Кейс: Создание мультитенантности с Logto Organizations

Узнайте, как настроить надежную и масштабируемую основу идентификации для мультитенантности с Logto Organizations.

Gao
Gao
Founder

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

Проблема

Это может привести к головной боли не только в начале, но и при долгосрочной поддержке приложения. Традиционная модель ролевого управления доступом (RBAC) может частично решить эту проблему, но быстро становится кошмаром, когда количество пользователей и организаций растет.

Пример организаций

Например, в начале у вас может быть только две роли в каждой организации: admin и member. Когда у вас есть 10 организаций, вы будете управлять 20 ролями; когда у вас есть 1,000 организаций, вы будете управлять 2,000 ролей.

С ростом бизнеса, вам может понадобиться добавить больше ролей, таких как guest, developer и т.д. Сложность модели RBAC будет расти в геометрической прогрессии.

У нас была та же проблема, когда мы строили Logto Cloud. Мы вскоре поняли, что это распространенная проблема для отрасли, и нам нужно решить её. И Logto Organizations приходит на помощь.

Шаблон организации

Быстрый вопрос: почему SaaS-приложения являются SaaS? Мы считаем, что масштабируемость является одной из самых важных причин. Другими словами, что работает для одного клиента, должно работать для всех клиентов.

Это приводит к концепции "шаблон организации". Шаблон организации — это план модели управления доступом для каждой организации: он определяет роли и разрешения, применимые ко всем организациям.

Скажем, у нас есть две роли для каждой организации:

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

Мы можем создать шаблон организации со следующей конфигурацией:

Шаблон организации

Добавление пользователей в организации

После настройки шаблона организации, управление пользователями становится легким и естественным. Вы можете добавить пользователя в организацию через Logto Console (веб-UI) или через Logto Management API.

Смотрите Настройка организаций для получения дополнительной информации.

Мы добавили две организации со следующей настройкой:

  • Организация A: и Алиса, и Боб являются участниками. Алиса имеет роль admin, а Боб — роль member.
  • Организация B: только Алиса является участником, и у нее роль member.

Организация A

Организация B

Запрос токенов организаций в вашем приложении

Теперь в вашем клиентском приложении вы можете запросить токен доступа к организации (токен организации) от Logto. Токен организации — это JWT токен, который содержит необходимую информацию для вашей службы, чтобы проверить, есть ли у пользователя разрешение в организации.

Подробные шаги запроса токена организации описаны в Интеграция организаций с вашим приложением.

Предположим, что Алиса вошла в ваше приложение и хочет удалить пользователя в Организации A. Ваше приложение может запросить токен организации для "Организации A" с разрешением remove:member (область действия). Logto проверит, есть ли у Алисы разрешение в организации, и вернет токен организации, так как у нее роль admin:

Вот некоторые примеры ошибок:

  • Если Боб захочет удалить пользователя в Организации A, Logto вернет ошибку, поскольку у него нет роли admin в Организации A.
  • Если Алиса захочет удалить пользователя в Организации B, Logto также вернет ошибку, так как у неё нет роли admin в Организации B.
  • Если Боб захочет получить токен организации с любым разрешением в Организации B, Logto вернет ошибку, так как у него нет членства в Организации B.

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

Проверка токенов организаций в вашей службе

В вашей службе вы можете проверить токен организации стандартным процессом верификации JWT. Подробнее читайте в статье Проверка токенов организаций.

Обновление шаблона организации

Когда вам необходимо обновить шаблон организации, например, добавить новую роль под названием developer, вы можете сделать это в Logto Console или через Logto Management API. Изменение автоматически применится ко всем организациям без какого-либо простоя.

Новые роли организации

Заключение

С Logto Organizations управление и масштабирование мультитенантности становится стандартным и комфортным. Вы можете сосредоточиться на бизнес-логике и оставить идентификацию и управление доступом Logto.