sobota 11. října 2025

Autorizace - naprosté základy pro analytika

Cílem autorizace je rozhodnout, zda ověřený subjekt má oprávnění vykonat určitou akci. Tj. například zda si uživatel Petr Novák může prohlédnout obsah určitého dokumentu s id b046c6c5-5d6c-479c-8918-ef4038cc1ac4.

Existují 4 základní modely autorizace:

  • Role-Based (RBAC)
  • Attribute-Based (ABAC)
  • Relationship-Based (ReBAC)
  • Policy-Based (PBAC)

Pojďme se na ně podrobněji podívat. Všechny tyto modely řeší kdo co může, ale každý jinak.

Role-Based (RBAC)

Oprávnění se řídí pomocí rolí. Takže Petr Novák si může prohlédnout obsah dokumentu, pokud má roli, která to umožňuje.

Attribute-Based (ABAC)

Oprávnění  se řídí atributy. Takže pokud 

user.id = document.creator_id 
OR document.access_list contains user.id
OR (user.role == "Administrator" AND document.confidential == False)

Relationship-Based (ReBAC)

Přístup se odvozuje ze vztahu mezi uživatelem a objektem. 

relation creator: user
relation viewer: user
permission view = creator + viewer


K danému dokumentu se pak definují vztahy

document:doc123#creator@user:jan.kral
document:doc123#viewer@user:petr.novak
user:jan.kral#role@role:administrator


Policy-Based (PBAC)

Přístup se řídí centrální sadou politik.


Dejme tomu, že budeme používat SpicyDB. Jak se do toho pustit z analytického pohledu? Tady je  kuchařka, jak do toho:

  1. Začni Use Case scénáři -  cílem je získat úplný přehled oprávnění z pohledu uživatele.
  2. Z Use-casů odvoď entity a vztahy. Cílem je vědět, jaké objekty existují a jaké vztahy mezi nimi bude SpiceDB spravovat.
  3. Definuj oprávnění – Permission Matrix Cílem je převést business logiku na formální pravidla.
  4.  Namapuj existující role (RBAC → ReBAC)
  5. Navrhni SpiceDB schema. To už je práce pro developera.
  6. Ověř funkčnost – Testovací scénáře. Tady se zapojí tester.
  7. Popiš Governance (správa a změny).
  8. Připrav migrační/integrační plán.

Žádné komentáře:

Okomentovat