
Правильный RBAC
telkatrax 4 минуты назад Правильный RBAC Простой 8 мин 48 Блог компании faracrm CRM-системы * Информационная безопасность * Четыре оси доступа: как мы построили RBAC, который реально защищает (на примере FARA CRM)Третья...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. telkatrax 4 минуты назад Правильный RBAC Простой 8 мин 48 Блог компании faracrm CRM-системы * Информационная безопасность * Четыре оси доступа: как мы построили RBAC, который реально защищает (на примере FARA CRM)Третья статья в блоге FARA CRM. В первых двух мы рассказывали про работу с файлами и обзор fara crm. Сегодня — про то, без чего CRM нельзя выпускать в прод: про разграничение доступа.
Не «роли и галочки», а инженерно проработанную систему из четырёх независимых осей. Вопрос — как его правильно реализоватьСпросите любого инженера, как разграничить доступ в приложении, — услышите RBAC: роли и права. Но RBAC — это концепция, а не рецепт.
Технические детали
Совет «заведите роли и выдайте им права» не говорит ничего о том, как это сделать, когда доходит до реального продукта. А в продукте почти сразу всплывают вопросы, на которые модель «роль → право» ответить не может:Менеджер работает с лидами. Со всеми — или только со своими?
Пользователь редактирует свой профиль. А поле «Роли» или «Суперпользователь» внутри этого профиля — тоже может менять? (если да — он одним кликом сделает себя администратором)Суперадмин снимает админские права.
А с последнего оставшегося админа? Ключевое наблюдение: эти вопросы — разного уровня. Один про таблицу целиком, другой про конкретную строку, третий про отдельное поле, четвёртый про допустимое значение.
Отраслевые последствия
«Плоский» RBAC отвечает только на первый. Остальные в большинстве проектов превращаются в россыпь if-ов по коду — а это прямой источник уязвимостей (то самое самоназначение роли — классический privilege escalation через mass-assignment, на котором в 2012-м взломали GitHub). Мы формализовали ответ в концепцию из четырёх независимых осей доступа — вместе они закрывают все четыре уровня.
Это по-прежнему RBAC, просто доведённый до конца. Почему «роль → право» — это только первый слойКлассический RBAC выглядит так:Пользователь → Роли → Права (permissions) Менеджеру выдали роль manager, у роли есть право lead. update — значит, менеджер может редактировать лиды.
Просто, понятно, работает в большинстве случаев. Проблема в том, что такое «право» — это галочка уровня таблицы целиком. Оно отвечает ровно на один вопрос: «может ли роль в принципе выполнять C/R/U/D над этой моделью?
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





