Preskočiť na obsah

Open source

Staviame otvorene — a používame to sami

Komponenty, ktoré potrebuje takmer každý systém, staviame raz a otvorene. Aktuálne dva projekty: CentralAuth pre autentifikáciu a SancMeld pre preverovanie voči sankčným zoznamom.

CentralAuth

Proof of concept

Jeden autorizačný server a jedno BFF pre všetky projekty

Každý nový projekt si zvyčajne píše prihlasovanie, správu relácií a bránu pred svoje API odznova. CentralAuth to obracia: nový projekt sa jednoducho zaregistruje a svoje frontendy aj backendy dostane zabezpečené hneď v prvý deň.

Nový projekt

Tri kroky namiesto týždňa práce

Prihlasovanie, obnova relácií, odhlásenie, kontrola oprávnení, brána pred API — v každom novom projekte tá istá práca. Tu ju nahradí registrácia aplikácie.

  1. Zaregistrujte aplikáciu

    Kód, názov a interná adresa služby. Cesta /bff/{kód} vznikne automaticky.

  2. Backend nechajte skrytý

    Služba beží na internej sieti bez vystaveného portu. Zvonku sa k nej nedá dostať inak než cez BFF.

  3. Frontend volá cez BFF

    Volania idú na /bff/{kód}/… s prihlasovacou cookie. V projekte nepribudne ani riadok autentifikačného kódu.

Identita

Autorizačný server

Jedno miesto, kde sa rieši prihlasovanie pre všetky aplikácie.

  • OpenID Connect a OAuth 2.0 postavené na OpenIddict
  • Authorization Code s povinným PKCE a obnovovacie tokeny
  • E-mail a heslo cez ASP.NET Identity, aj externé prihlásenie cez Google
  • API kľúče pre komunikáciu medzi službami bez používateľa
Bezpečnosť

Centrálne BFF

Token sa do prehliadača nedostane. Nikdy.

  • Prehliadač drží iba HttpOnly cookie — v localStorage nie je čo ukradnúť
  • Proxy vymení reláciu za krátkodobý JWT až na ceste k API
  • Požiadavky sa preposielajú jedna k jednej — aj s telom, hlavičkami a stavovými kódmi
  • Pri vývoji a ladení vidíte reálne volania na API, chyby netreba hľadať naprieč vrstvami
  • Interné API nemusia mať vôbec vystavený port do internetu
Onboarding

Registrácia aplikácií

Nová aplikácia je jeden záznam, nie ďalší kus konfigurácie.

  • Registrácia aplikácie automaticky vytvorí cestu /bff/{kód}
  • Cesty sú v databáze, nie v konfiguračnom súbore — zmena bez nasadzovania
  • Jeden projekt môže mať viacero frontendov aj backendových služieb
  • Priebežná kontrola dostupnosti registrovaných služieb
Kontrola

Relácie a oprávnenia

Odobratý prístup platí okamžite, nie po vypršaní tokenu.

  • Relácie sú na serveri a dajú sa kedykoľvek zneplatniť
  • Platnosť sa overuje pri každej požiadavke, nie len pri prihlásení
  • Oprávnenia podľa rolí na úrovni jednotlivých ciest
  • Administračné rozhranie na aplikácie, cesty a používateľov

Ako to funguje

Token sa do prehliadača nikdy nedostane

Frontend komunikuje výhradne s BFF a preukazuje sa podpísanou HttpOnly cookie. BFF pri každej požiadavke overí, či relácia stále platí, a až potom vydá krátkodobý token pre cieľové API. Ak sa útočníkovi podarí spustiť cudzí skript vo vašej aplikácii, nemá čo ukradnúť — a odobratý prístup platí okamžite, nie až keď vyprší token.

BFF je pritom transparentná proxy — požiadavky preposiela tak, ako ich frontend poslal. Pri vývoji a ladení preto vidíte reálne volania na API a pri hľadaní chyby netreba rekonštruovať, čo sa medzi vrstvami naozaj stalo. Celé riešenie je určené pre projekty, kde vlastné BFF ako ďalšia aplikačná vrstva nedáva zmysel — namiesto toho, aby si ho každý projekt staval a prevádzkoval sám, ho nahrádza jedno centrálne.

Prehliadač

HttpOnly cookie

BFF proxy

overí reláciu, vydá JWT

Chránené API

Bearer token

Druhý projekt

SancMeld

Preverovanie voči sankčným zoznamom EÚ, OSN a OFAC

.NET riešenie, ktoré sadou plánovaných cron úloh priebežne sťahuje dostupné sankčné zoznamy a vyhľadáva v nich zhody. Súčasťou je predikčný mechanizmus postavený na ML.NET, ktorý pomáha posúdiť, nakoľko je nájdená zhoda relevantná.

.NETML.NETEU · UN · OFAC
  • Cron úlohy priebežne sťahujú a spracúvajú zoznamy EÚ, OSN a OFAC
  • Vyhľadávanie zhôd beží vždy nad aktuálnou verziou zoznamov
  • Predikčný mechanizmus na hodnotenie zhôd postavený na ML.NET
  • Jedno .NET riešenie — nasaditeľné ako služba u vás aj u nás

Spolupráca

Tri spôsoby, ako naše riešenia prevádzkovať

Kód je otvorený a všetko si môžete spraviť sami. Ak chcete, vieme pomôcť — od podpory až po plne spravovanú službu.

Platená podpora

Riešenie si prevádzkujete sami a od nás máte garantovanú pomoc — konzultácie, riešenie problémov a asistenciu pri aktualizáciách.

Nasadenie a správa u vás

Celé riešenie nasadíme na váš server alebo do vášho cloudu a prevezmeme jeho správu — aktualizácie, monitoring aj bezpečnostné záplaty.

Tenant na inštancii CPD

Nechcete nič prevádzkovať? Zakúpite si tenanta na našej inštancii a používate riešenie ako službu.

Prečo otvorene

Autorizačný server je presne ten typ komponentu, ktorý si nikto nechce písať sám a zároveň mu musí vedieť dôveryhodne pozrieť pod kapotu. Uzavretý kód tú dôveru nedáva.

Riešenie si viete nasadiť a prevádzkovať vo vlastnej réžii — alebo si vybrať niektorý zo spôsobov spolupráce vyššie.

  • Bez vendor lock-inu

    Postavené na štandardoch OpenID Connect a OAuth 2.0. Ak sa raz rozhodnete odísť, odchádzate so štandardným protokolom, nie s našou konvenciou.

  • Auditovateľné

    Celý tok autorizácie viete prejsť riadok po riadku — vrátane vašich vlastných bezpečnostných auditov.

  • Postavené na osvedčených komponentoch

    OpenIddict a ASP.NET Identity. Kryptografiu ani protokoly sme nevymýšľali nanovo, spojili sme ich do celku, ktorý sa dá nasadiť naraz.

  • Zatiaľ proof of concept

    Autorizačný server, BFF proxy, registrácia aplikácií aj administrácia fungujú. Na produkčné nasadenie riešenie ešte dolaďujeme a nechceme tvrdiť opak.