Модель управления доступом на основе отношений

Модель управления доступом на основе отношений (англ. Relationship-based access control, ReBAC) — концепция в области безопасности компьютерных систем, определяющая парадигму авторизации, при которой разрешение субъекта на доступ к ресурсу зависит от наличия определённых отношений между этим субъектом и ресурсом.

Авторизация в модели ReBAC, как правило, осуществляется посредством обхода ориентированного графа отношений. Узлы и рёбра такого графа аналогичны триплетам в формате данных Resource Description Framework (RDF). Системы ReBAC позволяют создавать иерархии отношений, а некоторые из них поддерживают более сложные определения, включая использование алгебраических операций над отношениями, таких как объединение, пересечение и разность[1].

ReBAC редко используется изолированно и чаще выступает частью гибридных моделей авторизации[2].

История

Термин ReBAC был предложен Кэрри И. Гейтс в 2006 году[3].

В 2019 году компания Google опубликовала статью об архитектуре системы управления авторизацией «Zanzibar: Google’s Consistent, Global Authorization System»[1]. В этой работе система описывается как состоящая из конфигураций пространства имён и данных отношений, представленных в виде триплетов.

После публикации этой статьи начался переход модели к активному промышленному внедрению. В период с 2024 по 2026 год вокруг идей Zanzibar сформировалась развитая экосистема, что сопровождалось активным ростом open-source проектов (таких как SpiceDB и OpenFGA) и появлением коммерческих решений[4].[5]

Архитектура и принципы работы

Ключевыми компонентами архитектуры ReBAC являются хранилище отношений, схема (или конфигурация пространства имён), ядро авторизации и API. Хранилище отношений содержит связи между сущностями в виде кортежей. Схема определяет типы объектов и возможные отношения между ними. Ядро авторизации отвечает за обработку запросов, а API предоставляет интерфейсы для управления связями и проверки прав доступа[6].

Механизм проверки прав доступа базируется на обходе ориентированного графа связей от субъекта к объекту. При поступлении запроса система ищет в графе путь, который связывает пользователя с целевым ресурсом и подтверждает наличие необходимого разрешения согласно установленным политикам[7].

В крупных системах с большим количеством пользователей и ресурсов обход сложных графов может приводить к значительным задержкам, что создаёт проблемы с масштабируемостью. Для оптимизации производительности применяются различные методы, включая использование специализированных баз данных, кэширование результатов проверок и материализацию разрешений (предварительное вычисление и сохранение прав доступа)[8].

Сравнение с традиционными моделями

В отличие от модели ролевого управления доступом (англ. role-based access control, RBAC), в которой определяются роли с закреплёнными за ними наборами привилегий и к которым назначаются субъекты[9], ReBAC, как и ABAC (англ. Attribute-based access control, ABAC)[10], позволяет задавать более тонкие настройки разрешений[9]. За счёт использования динамических связей вместо создания множества статичных ролей ReBAC решает присущую RBAC проблему «ролевого взрыва» (role explosion)[11]. Например, если в системе ReBAC определён ресурс типа «документ», для которого возможна операция «редактор», и в системе содержится отношение «('alice', 'редактор', 'документ: budget')», то субъект «Alice» получает право редактировать конкретный ресурс «документ: budget». Недостатком ReBAC является то, что такая детализация требует большего числа проверок авторизации в приложениях.

Системы ReBAC по умолчанию реализуют запрет доступа, и на их основе возможно построение RBAC-систем[1]. Современной тенденцией является создание гибридных систем, где RBAC задаёт базовый каркас прав, а ReBAC используется для тонкой настройки доступа к объектам[2].

Преимущества и недостатки

Преимущества:

  • гибкость[12];
  • соответствие реальным организационным структурам[13];
  • высокая гранулярность управления доступом[14].

Недостатки:

  • сложность первоначального проектирования графа отношений[15];
  • высокие требования к вычислительным ресурсам при проверке прав (обход графа)[15];
  • сложность аудита доступа[14].

Применение

Популярность модель управления доступом на основе отношений приобрела с ростом социальных сетей, где пользователям необходимо управлять доступом к личной информации в зависимости от своих отношений с получателем, а не от роли получателя[3]. В таких системах ReBAC позволяет управлять видимостью контента на основе связей (например, предоставлять доступ только группе «друзья» или «семья»)[12].

Благодаря ReBAC появилась возможность коллективно назначать разрешения группам и командам, что устраняет необходимость индивидуальной настройки доступа к каждому ресурсу. В системах управления документами (например, Google Drive) модель применяется для настройки прав на основе связей между пользователями и контентом[1]. Права определяются отношениями «владелец», «редактор» или «читатель» для конкретного документа, при этом поддерживается наследование прав, когда доступ к папке автоматически распространяется на все вложенные в неё файлы.

Модель также активно внедряется в современные B2B SaaS-приложения и платформы. Например, сервис аренды жилья Airbnb использует систему авторизации Himeji, построенную на принципах ReBAC: гость получает доступ к точному адресу жилья только после подтверждения бронирования, а к паролю от Wi-Fi — исключительно на время своего пребывания[16].

Реализации

Наиболее значимые реализации, созданные под влиянием архитектуры Google Zanzibar, разделяются на проекты с открытым исходным кодом и коммерческие решения:[4]

Open-source проекты:

  • SpiceDB — база данных для хранения и вычисления прав доступа, поддерживаемая компанией Authzed[17].
  • OpenFGA — система авторизации, переданная в Cloud Native Computing Foundation (CNCF)[18].
  • Keto — часть экосистемы идентификации и управления доступом Ory[4].
  • Permify — решение, ориентированное на многопользовательские (multi-tenant) приложения[4].

Коммерческие платформы и сервисы:

  • Authzed — платформа, построенная на базе проекта SpiceDB и предлагающая управляемые облачные сервисы[19].
  • Aserto — облачный сервис авторизации, позволяющий комбинировать ReBAC с другими моделями (RBAC и ABAC)[20].
  • Permit.io — платформа, предлагающая ReBAC в сочетании с другими моделями контроля доступа[21].

Примечания

  1. 1 2 3 4 Pang, Ruoming; Caceres, Ramon; Burrows, Mike; Chen, Zhifeng; Dave, Pratik; Germer, Nathan; Golynski, Alexander; Graney, Kevin; Kang, Nina; Kissner, Lea; Korn, Jeffrey L. (2019). “Zanzibar: Google's Consistent, Global Authorization System”. 2019 USENIX Annual Technical Conference (USENIX ATC '19). Renton, WA. Дата обращения 2026-05-28.
  2. 1 2 Access Control Models: ACL, RBAC, ABAC, ReBAC. System Design Space. Дата обращения: 28 мая 2026.
  3. 1 2 Gates, Carrie (2007). “Access control requirements for web 2.0 security and privacy”. IEEE Web [англ.]. 2: 12—15. Дата обращения 2026-05-28.
  4. 1 2 3 4 Top 5 Google Zanzibar Open Source Implementations in 2024. WorkOS Blog. Дата обращения: 28 мая 2026.
  5. Authorization 2024 Year in Review. Authzed. Дата обращения: 28 мая 2026.
  6. Google Zanzibar: The Foundation of Modern Authorization. Authzed. Дата обращения: 28 мая 2026.
  7. Relationship-Based Access Control (ReBAC). Auth0. Дата обращения: 28 мая 2026.
  8. RBAC vs ABAC vs ReBAC: What is the best access policy paradigm? Oso. Дата обращения: 28 мая 2026.
  9. 1 2 Authorization - OWASP Cheat Sheet Series (англ.). cheatsheetseries.owasp.org. Дата обращения: 28 мая 2026.
  10. Hu, Vincent C.; Ferraiolo, David; Kuhn, Rick; Schnitzer, Adam; Sandlin, Kenneth; Miller, Robert; Scarfone, Karen (январь 2014). “Guide to Attribute Based Access Control (ABAC) Definition and Considerations”. NIST [англ.]. DOI:10.6028/nist.sp.800-162. Дата обращения 2026-05-28. Проверьте дату в |date= (справка на английском)
  11. RBAC vs ReBAC: When to Use Which. Authzed. Дата обращения: 28 мая 2026.
  12. 1 2 What is ReBAC? WorkOS. Дата обращения: 28 мая 2026.
  13. What is ReBAC? Permit.io. Дата обращения: 28 мая 2026.
  14. 1 2 RBAC vs ReBAC: Which Access Control Model is Right for You? Zluri. Дата обращения: 28 мая 2026.
  15. 1 2 Relationship-Based Access Control (ReBAC). Auth0. Дата обращения: 28 мая 2026.
  16. Airbnb, Uber, and App Authorization: ReBAC and ABAC Examples. Aserto. Дата обращения: 28 мая 2026.
  17. SpiceDB. GitHub. Дата обращения: 28 мая 2026.
  18. OpenFGA. CNCF. Дата обращения: 28 мая 2026.
  19. Policy-Based Access Control. Authzed. Дата обращения: 28 мая 2026.
  20. Google Zanzibar Drives ReBAC Authorization Model. Aserto. Дата обращения: 28 мая 2026.
  21. What is Google Zanzibar? Permit.io. Дата обращения: 28 мая 2026.

Категории