В большой продуктовой экосистеме проверка доступа становится отдельной инженерной задачей: пользователи входят в группы и подразделения, ресурсы образуют собственные иерархии, а права наследуются и переопределяются. При проектировании общего Авторизатора Яндекс 360 мы сравнили RBAC, ABAC и ReBAC и остановились на ReBAC. Готовые open-source-решения для этой модели не выдерживали нужного нам масштаба, поэтому мы развиваем собственный контур авторизации.
Разберём, как устроена доменная модель из субъектов, ресурсов, ролей и разрешений, где хранятся связи и как продукты интегрируются с общим Авторизатором. Сейчас все проверки выполняются на лету — кеша прав в системе нет. Чтобы повышать скорость и не переходить преждевременно к кешированию со сложной инвалидацией, мы дополняем ReBAC элементами ABAC. Покажем, где чистая графовая модель становится слишком дорогой и как сочетание разных подходов влияет на производительность, выразительность правил и сложность системы.
При дальнейшем росте — например, от сотен миллионов до миллиарда ресурсов — кеширование становится неизбежным. Слушатели узнают о критериях выбора между RBAC, ABAC и ReBAC; поймут, когда готового решения уже недостаточно; в каких случаях графовую модель стоит дополнять атрибутами и по каким признакам пора проектировать кеш.
Бэкенд-разработчик, Технический директор / Архитектор, Системный аналитик
Средний
Более 20 лет в аналитике/разработке, ВМиК МГУ, кандидат технических наук.