ACL в ERP/CRM системах: архитектура и реализация на конкретном примере
Системы с избирательным доступом - где они, чем они отличаются друг от друга? Какие архитектуры систем управления доступом существуют? Когда каждая из них применяется? Почему для сложных, многофункцинальных систем недостаточно простого принципа "разрешено - запрещено"? Как сделать сложную систему управления доступом простой в управлении? Все это я расскажу на примере конкретной реализованной медицинской информационной системы (да, такие тоже иногда пишутся на PHP:)
Системы с избирательным доступом - везде вокруг нас. Твиттер, социальные сети, корпоративные системы - все это системы с избирательными доступом. Их различают различные архитектуры систем управления доступом (то, что мы привыкли называть ACL).
Архитектуры систем управления доступом на примерах:
- Классический DAC - разрешаем или запрещаем
- "Военный" MAC - если ты генерал, то ты круче полковника
- RBAC - СУД для бизнес-систем
- ABAC – imba-level или как сделать что-то избыточно сложным
Когда надо смешать отдельные архитектурные решения, для чего, что это даст?
Абстракция уровня контроля доступа - почему это крайне важно? Как выбрать объекты контроля доступа? Как сделать так, чтобы систему с такой системой управления не было мучительно больно поддерживать и развивать?
Что делать, если заказчик предъявляет требования к контролю доступа следующего характера: "Неограниченное число ролей, все настраивается и чтобы все было крайне просто" и при этом у вас более 10000 объектов контроля доступа.
WYSIWYG - применение принципа "я получаю то, что я вижу" в проекции на системы управления доступом. Архитектура и реализация системы управления доступом в системе управления частной медицинской организацией - МИС.