Сложная система Righty: ACL, RBAC и многое другое?

В настоящее время мы разрабатываем программное обеспечение для управления проектами. И у нас возникают проблемы с выбором правильного подхода к обеспечению безопасности. Мы рассмотрели как ACL, так и RBAC и уже почти уверены, что нам нужна хотя бы комбинация обоих по конкретным причинам. Но есть пара проблем, которые не имеют хорошего решения ни в одном мире. Позволь мне объяснить:

Позволять'скажем, у вас есть следующие объекты:

пользователейс разными ролями, т.е.Руководитель проектаработникАдминистраторпроектовНазначенные пользователиЗадачи в проекте

Теперь следует сформулировать следующее правило:пользователь с рольюработник разрешено только для просмотраЗадачи, которые связаны с проектом, которому он назначен.

Это приводит к тому, чтопользователь разрешено только просматривать некоторыеЗадачи во всем списке.

Мы бы использовали RBAC, чтобы датьРоли разрешение на фактическое чтениеЗадачи, Но условие не применяется, так как в нем участвуют конкретные объекты. Можно использовать ACL, но мы боимся кошмара, когда записи ACL соответствуют требованиям (пользователей может измениться,Роли может измениться, новыйЗадачи может быть введен и должен будет получить правильные записи, что также сложно).

Конечно, могут быть конкретные запросы при просмотре конкретного проекта (WHERE project_id = 123), но это не поможетПросмотр всех моих текущихЗадачи"где в основном каждая задача может рассматриваться для отображения, но ACL должен быть проверен для каждой отдельной записи.

И как мне обеспечить такие вещи, как "Получите первые 25 задач, которые разрешено видеть текущему пользователю » без загрузки всех задач из БД и последующей фильтрации на основе ACL, т. е. обработки нумерации страниц.

Ответы на вопрос(2)

Ваш ответ на вопрос