ABAC: Attribute Based Access Control (ISO/IEC 29146)
Дана бібліотека реалізує систему керування доступом на основі атрибутів (ABAC) згідно з міжнародним стандартом ISO/IEC 29146:2016 (Information technology — Security techniques — A framework for access management) та рекомендаціями NIST SP 800-162.
Архітектура (ISO 29146)
Відповідно до стандарту, система розділена на функціональні компоненти:
- PDP (Policy Decision Point) — Точка прийняття рішень (
ABAC.PDP). Обчислює вердикт (Permit/Deny) на основі політик та атрибутів. - PIP (Policy Information Point) — Точка інформації про політики (
ABAC.PIP). Збагачує запит атрибутами з контексту (ERP, BPE, бази даних). - PAP (Policy Administration Point) — Точка адміністрування. Забезпечує створення та зберігання політик (використовує
KVS). - PEP (Policy Enforcement Point) — Точка забезпечення виконання (
ABAC.API). Перехоплює запити до системи та викликає PDP для отримання дозволу.
Модель даних
Запит (Request)
Запит на доступ описується записом request, що містить:
subject: Суб'єкт (користувач, сервіс, ERP Employee).endpoint: API-метод або дія (напр.VIEW,EDIT,SIGN).context: Додаткові дані оточення (форми, файли, процеси).
Політики та Правила
- Policy: Група правил з алгоритмом комбінування (
all— логічне "І",any— логічне "АБО"). - Rule: Атомарна перевірка, що включає:
subject_condition: Умови для суб'єкта (функція перевірки ролей, посад).object_condition: Умови для об'єкта (функція перевірки стадій, файлів).type: Тип правила (authдля дозволу,denyдля заборони).
Імплементація об'єктів
Для державного проєкту реалізовано підтримку специфічних об'єктів:
- Співробітник (
subject_employee): Перевірка ролей, підрозділів (org/branch) та делегованих повноважень (assistant/delegate). - Процес (
object_process): Перевірка стадії бізнес-процесу (BPE) та його статусу. - Документ (
object_file): Атрибути ЕЦП (sign), необхідність сертифікації (needCert), тип документа. - Форма (
object_form): Ідентифікатори та доступні поля.
Стандарти та відповідність
- ISO/IEC 29146:2016 — Архітектурний фреймворк та термінологія.
- NIST SP 800-162 — Настанови з впровадження ABAC.
- XACML 3.0 — Логіка обробки (Permit/Deny/NotApplicable/Indeterminate).
Автор
- Максим Сохацький, Інформаційні Судові Системи