Kapitola 01 / 09
ENSK

SmartExchange · .NET 10 · Chapter 01

Implementation overview

Jeden spoločný autorizačný postup pre Intaker aj Web API. Aplikácie pripravia fakty a aplikujú výsledok; Cerbos rozhoduje podľa pravidiel.

Shared code · Intaker + Web APIReviewed · 2026-10-27

Spoločný postup

  1. ApplicationUser, product, resource a action
  2. Context ResolverVybrané normalizované grants
  3. CerbosALLOW / DENY / podmienka
  4. SQL adapterPodmienka pridaná do business query

Tento postup implementujú štyri projekty BmcGroup.Authorization.*. Intaker dodá query z template; Web API dodá query svojho endpointu. Spoločné balíky neobsahujú logiku export template ani HTTP endpointov.

Čo už máme

V kóde

Spoločné knižnice

Kontrakty, legacy konverzia grants, výber contextu, validácia scope, gRPC plánovanie a parametrizovaný SqlKata preklad. Intaker tieto komponenty volá.

Non-prod overené · 2026-10-27

Cerbos deployment

5 resource policies a 8 derived-role ConfigMaps. Pripojené YAML súbory sa kompilujú; pod má stav 2/2 Ready. InterestedParty/read používa nový Project Scope kontrakt.

Ďalšia integrácia

Spoločné NuGet balíky

Publikovať knižnice, zosúladiť Person/Company policies s aktuálnymi grants, integrovať Web API a doplniť načítanie atribútov konkrétneho záznamu.

Kód a runtime sa líšia. Nasadené Person/Company policies ešte používajú staršie atribúty principala. Nové policies nad grants sú v repozitári; pri tejto aktualizácii dokumentácie sme ich nenasadzovali.

Dva rovnocenné export príklady

Oba príklady sledujú rovnaké kroky a používajú ten istý spoločný kód. Person export prijíma Company/read grant cez vzťah. Navrhovaný InterestedParty export prijíma InterestedParty/read v Project scope. Použitie read pre export je explicitné rozhodnutie policy; nemení action grantu a nevyplýva z bežného Project/read.

KrokPerson exportInterestedParty export
Požadovaná operáciaPerson/exportInterestedParty/export
Vstupný grantCompany/read/ResourceInterestedParty/read/Project
CRM relationcompanyIds → CompanyprojectIds → Project
Derived roleperson_with_readable_companyinterested_party_in_project_scope
PolicyPerson / presentation-demoInterestedParty / presentation-demo
SQLEXISTS PersonInCompany → CompanyEXISTS Project

Oba kompletné príklady derived roles a policies sú v 05; oba requests, očakávané plans a SQL príklady sú v 06.

Dvojica policies používa dokumentačnú verziu presentation-demo a nie je nasadená. Kapitola 09 samostatne zachováva overenú migráciu InterestedParty/read.