Skip to content

erpuno/abac

Repository files navigation

ABAC: Attribute Based Access Control (ISO/IEC 29146)

Actions Status Hex pm

Дана бібліотека реалізує систему керування доступом на основі атрибутів (ABAC) згідно з міжнародним стандартом ISO/IEC 29146:2016 (Information technology — Security techniques — A framework for access management) та рекомендаціями NIST SP 800-162.

Архітектура (ISO 29146)

Відповідно до стандарту, система розділена на функціональні компоненти:

  1. PDP (Policy Decision Point) — Точка прийняття рішень (ABAC.PDP). Обчислює вердикт (Permit/Deny) на основі політик та атрибутів.
  2. PIP (Policy Information Point) — Точка інформації про політики (ABAC.PIP). Збагачує запит атрибутами з контексту (ERP, BPE, бази даних).
  3. PAP (Policy Administration Point) — Точка адміністрування. Забезпечує створення та зберігання політик (використовує KVS).
  4. 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).

Автор

  • Максим Сохацький, Інформаційні Судові Системи

About

💠 ABAC: Розмежування прав доступу на основі реквізитної інформації

Resources

License

Stars

Watchers

Forks

Contributors