Организация и контроль доступа на основе ролей: Как спроектировать вашу модель авторизации для вашего продукта
Эта статья предоставляет подробное руководство по проектированию модели авторизации для организации и контроля доступа на основе ролей, а также предлагает лучшие практики для различных моделей авторизации на платформе Logto.
GuamianProduct & Design
Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
Организация — это группа пользователей (идентичностей) и может представлять команды, бизнес-клиентов и партнерские компании, которые могут обращаться к вашему приложению.
Организация особенно эффективна в бизнес-к-бизнесу (B2B) окружениях. В отличие от индивидуальных потребителей, бизнес-клиенты часто состоят из команд, организаций или целых компаний, а не только одного человека. Введение организации как сущности важно, так как она не только группирует пользователей, но и предоставляет контекст для изоляции арендаторов в многопользовательских приложениях.
Контроль доступа на основе ролей (RBAC) — это метод назначения разрешений пользователям на основе их ролей. Контроль доступа на основе ролей является нейтральным к политике механизмом контроля доступа, определяемым вокруг ролей и привилегий. Компоненты RBAC, такие как разрешения ролей, пользовательские-роль и отношения роль-роль, делают процесс назначения пользователей простым. Исследование NIST продемонстрировало, что RBAC отвечает многим потребностям коммерческих и государственных организаций.
Примеры использования контроля доступа на основе ролей#
Ранее мы разработали несколько руководств, чтобы помочь вам использовать RBAC для удовлетворения бизнес-требований. Просмотрите эти простые в использовании учебные пособия, чтобы быстро начать.
Использование различных моделей авторизации в Logto для лучшей практики#
Контроль доступа на основе ролей и организация являются ключевыми компонентами функций авторизации Logto. Как комплексная платформа управления идентичностями, Logto предлагает индивидуальные решения для различных сценариев и уровней, ориентированные на разработчиков и предприятия для разнообразных архитектур продуктов.
Чтобы защитить общие ресурсы API, которые не специфичны для какой-либо организации и не нуждаются в ограничениях контекста, функция API RBAC является идеальной.
Просто зарегистрируйте API и назначьте разрешения для каждого ресурса. Затем контролируйте доступ через отношения между ролями и пользователями.
Ресурсы API, роли и разрешения здесь “демократизированы” под единой системой идентичности. Это довольно распространено в B2C продукте с меньшей иерархией и не нуждается в очень глубоком уровне изоляции данных.
В B2B и многопользовательской среде изоляция арендаторов необходима. Для достижения этого используются организации как контекст для изоляции, что означает, что RBAC эффективен только тогда, когда пользователь относится к конкретной организации.
Организация RBAC сосредоточена на контроле доступа на уровне организации, а не на уровне API. Это обеспечивает значительную гибкость для самостоятельного управления на уровне организации в долгосрочной перспективе, но все еще в рамках единой системы идентичности.
Ключевой особенностью организационного RBAC является то, что роли и разрешения, как правило, одинаковы для всех организаций по умолчанию, что делает “организационный шаблон” Logto чрезвычайно значимым для повышения эффективности разработки.
Это соответствует общей философии многопользовательских приложений, где политики контроля доступа и идентичности являются общими инфраструктурными компонентами для всех арендаторов (арендаторов приложения), что является обычной практикой для продуктов SaaS.
Выбор и проектирование соответствующей модели авторизации#
При выборе правильной модели авторизации учитывайте эти вопросы:
Вы разрабатываете B2C, B2B или комбинацию обоих типов продуктов? Являются ли идентичности бизнес-идентичностями?
Нужно ли вашему приложению многопользовательскую архитектуру?
Есть ли необходимость в определенном уровне изоляции в вашем приложении, определяемая бизнес-единицей?
Какие разрешения и роли необходимо определить в контексте организации, а какие нет?
Возьмем пример веб-приложения: BookHarber, интернет-магазин книг. BookHarber предлагает широкий спектр функций для клиентов и персонала, обеспечивая беспрепятственный и безопасный опыт покупок.
Ключевые особенности BookHarber включают:
Просмотр и покупка книг: Пользователи могут легко искать и покупать книги из разнообразной коллекции, охватывающей различные жанры и авторов.
Управление заказами и отслеживание логистики: Зарегистрированные клиенты могут управлять своими заказами, отслеживать доставку и получать обновления о своих покупках.
Специальные предложения и праздничные мероприятия: BookHarber предоставляет эксклюзивные скидки и акции во время специальных мероприятий и праздников, чтобы заинтересовать и вознаградить свою клиентскую базу.
Поддержка клиентов: Клиенты могут открывать билеты поддержки для решения любых проблем или вопросов, получая оперативную помощь от персонала BookHarber.
Управление клиентами: Сотрудники с различными ролями имеют возможность управлять различными аспектами платформы, такими как учетные записи клиентов, обработка заказов и решение проблем.
В экосистеме BookHarber мы можем выделить несколько ключевых ролей пользователей, таких как:
Гость: Незарегистрированные пользователи, которые могут просматривать веб-сайт, искать книги и просматривать специальные предложения.
Клиент: Зарегистрированные пользователи, которые могут покупать книги, управлять заказами, отслеживать логистику и открывать билеты поддержки.
Администратор магазина: Сотрудники, ответственные за управление и операции платформой. С полным доступом.
Менеджер книг: Сотрудники, отвечающие за управление книгами и категориями.
Агент службы поддержки клиентов: Сотрудники, отвечающие за ответы на билеты поддержки.
Поставщик третьей стороны логистики: Внешние партнеры, ответственные за управление и отслеживание доставки заказов.
Сотрудник по маркетингу: Сотрудники, ответственные за продвижение BookHarber, ответственные за управление специальными предложениями и мероприятиями.
Ранее мы разработали несколько руководств, чтобы помочь вам использовать RBAC для удовлетворения бизнес-требований. Просмотрите эти простые в использовании учебные пособия, чтобы быстро начать.
Многопользовательские приложения часто находят свое место в бизнес-к-бизнесу (B2B) решениях, таких как инструменты повышения производительности, системы планирования ресурсов предприятия (ERP) и других продуктах программного обеспечения как услуги (SaaS). В этом контексте каждый "арендатор" обычно представляет собой бизнес-клиента, который может иметь нескольких пользователей (своих сотрудников). Кроме того, у бизнес-клиента может быть несколько арендаторов, представляющих отдельные организации или бизнес-подразделения.
B2B приложения выходят за пределы продуктов SaaS и часто включают в себя использование многопользовательских приложений. В контексте B2B эти приложения служат общей платформой для различных команд, бизнес-клиентов и партнерских компаний для доступа к вашим приложениям.
Например, рассмотрим компанию по совместному использованию авто, которая предоставляет приложения как для B2C, так и для B2B. B2B приложения обслуживают нескольких бизнес-клиентов, и использование многопользовательской архитектуры может помочь в управлении их сотрудниками и ресурсами. Чтобы иллюстрировать, если компания хочет сохранить единую систему идентичности пользователей, она может разработать архитектуру, подобную следующему примеру:
Возьмем Сару в качестве примера. У Сары есть как личная, так и бизнес-идентичность. Она использует сервис совместного использования авто как пассажир, а также работает водителем в свободное время. В своей профессиональной роли она также управляет своим собственным личным бизнесом и использует эту бизнес-идентичность, чтобы быть партнером с Бизнесом 1.
Logto предлагает как функции контроля доступа на основе ролей (RBAC), так и функции организации для удовлетворения ваших требований к авторизации. Эти функции разработаны для легкой интеграции в различные части вашего продукта. Для получения дополнительной информации взгляните на наши разделы о организациях и RBAC, или попробуйте Logto прямо сейчас.