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

Actions StatusHex 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, що містить:

Політики та Правила

Імплементація об'єктів

Для державного проєкту реалізовано підтримку специфічних об'єктів:

Приклади (для розробників)

Дозвіл на підписання документа лише для користувачів з роллю BOSS на стадії процесу AGREEMENT:

 Rule = #rule{
    id = <<"sign_boss_rule">>,
    api_endpoint = &#39;SIGN&#39;,
    type = auth,
    subject_condition = employee_check,
    subject = #subject_employee{roles = [&#39;BOSS&#39;]},
    object_condition = sched_check,
    object = #object_process{stage = &#39;AGREEMENT&#39;}
 }.

 Policy = #policy{
    id = <<"gov_sign_policy">>,
    combining = all,
    rules = [#rule_ref{id = <<"sign_boss_rule">>}]
 }.

Стандарти та відповідність

Автор

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