Ugrás a tartalomra

Open source

Nyíltan építünk — és magunk is használjuk

A komponenseket, amelyekre szinte minden rendszernek szüksége van, egyszer és nyíltan építjük meg. Jelenleg két projekt: a CentralAuth az autentikációra és a SancMeld a szankciós listák szűrésére.

CentralAuth

Proof of concept

Egy autorizációs szerver és egy BFF minden projekthez

Minden új projekt általában újraírja a bejelentkezést, a munkamenet-kezelést és az API-ja előtti kaput. A CentralAuth ezt megfordítja: az új projekt egyszerűen regisztrál, és a frontendjei meg a backendjei már az első naptól védettek.

Új projekt

Három lépés egy hét munka helyett

Bejelentkezés, munkamenet-frissítés, kijelentkezés, jogosultság-ellenőrzés, kapu az API előtt — minden új projektben ugyanaz a munka. Itt mindezt az alkalmazás regisztrációja váltja ki.

  1. Regisztrálja az alkalmazást

    Kód, név és a szolgáltatás belső címe. A /bff/{kód} útvonal automatikusan létrejön.

  2. A backendet hagyja rejtve

    A szolgáltatás a belső hálózaton fut, nyitott port nélkül. Kívülről csak a BFF-en keresztül érhető el.

  3. A frontend a BFF-en keresztül hív

    A hívások a /bff/{kód}/… címre mennek a bejelentkezési cookie-val. A projekthez egyetlen sor autentikációs kód sem kerül.

Identitás

Autorizációs szerver

Egyetlen hely, ahol minden alkalmazás bejelentkezése történik.

  • OpenID Connect és OAuth 2.0 az OpenIddictre építve
  • Authorization Code kötelező PKCE-vel és frissítő tokenek
  • E-mail és jelszó az ASP.NET Identityn keresztül, valamint külső bejelentkezés Google-fiókkal
  • API-kulcsok a szolgáltatások közötti, felhasználó nélküli kommunikációhoz
Biztonság

Központi BFF

A token nem kerül a böngészőbe. Soha.

  • A böngésző csak egy HttpOnly cookie-t tart — a localStorage-ban nincs mit ellopni
  • A proxy csak az API felé vezető úton váltja a munkamenetet rövid életű JWT-re
  • A kérések egy az egyben továbbítódnak — a törzzsel, a fejlécekkel és az állapotkódokkal együtt
  • Fejlesztés és hibakeresés közben a valós API-hívásokat látja, a hibákat nem kell rétegeken át keresni
  • A belső API-knak egyáltalán nem kell portot nyitniuk az internet felé
Onboarding

Alkalmazások regisztrációja

Egy új alkalmazás egyetlen bejegyzés, nem újabb adag konfiguráció.

  • Az alkalmazás regisztrációja automatikusan létrehozza a /bff/{kód} útvonalat
  • Az útvonalak az adatbázisban vannak, nem konfigurációs fájlban — a módosításhoz nem kell telepíteni
  • Egy projekthez több frontend és több backend-szolgáltatás is tartozhat
  • A regisztrált szolgáltatások elérhetőségének folyamatos ellenőrzése
Kontroll

Munkamenetek és jogosultságok

A visszavont hozzáférés azonnal érvényes, nem a token lejártakor.

  • A munkamenetek a szerveren vannak, és bármikor érvényteleníthetők
  • Az érvényesség minden kérésnél ellenőrződik, nem csak bejelentkezéskor
  • Szerepkör-alapú jogosultságok az egyes útvonalak szintjén
  • Adminisztrációs felület az alkalmazásokhoz, útvonalakhoz és felhasználókhoz

Hogyan működik

A token soha nem kerül a böngészőbe

A frontend kizárólag a BFF-fel kommunikál, és aláírt HttpOnly cookie-val azonosítja magát. A BFF minden kérésnél ellenőrzi, hogy a munkamenet még érvényes-e, és csak azután ad ki rövid életű tokent a cél-API-hoz. Ha egy támadónak sikerül idegen szkriptet futtatnia az alkalmazásában, nincs mit ellopnia — a visszavont hozzáférés pedig azonnal érvényes, nem csak a token lejártakor.

A BFF eközben átlátszó proxy — a kéréseket úgy továbbítja, ahogy a frontend elküldte őket. Fejlesztés és hibakeresés közben ezért a valós API-hívásokat látja, és a hiba keresésekor nem kell rekonstruálni, mi történt valójában a rétegek között. Az egész megoldás olyan projektekhez készült, ahol a saját BFF mint külön alkalmazásréteg nem éri meg — ahelyett, hogy minden projekt maga építené és üzemeltetné, egyetlen központi váltja ki.

Böngésző

HttpOnly cookie

BFF proxy

ellenőrzi a munkamenetet, JWT-t ad ki

Védett API

Bearer token

Második projekt

SancMeld

Szűrés az EU, az ENSZ és az OFAC szankciós listái ellen

Egy .NET megoldás, amely ütemezett cron feladatokkal folyamatosan letölti az elérhető szankciós listákat, és egyezéseket keres bennük. Része egy ML.NET-re épített predikciós mechanizmus, amely segít megítélni, mennyire releváns a talált egyezés.

.NETML.NETEU · UN · OFAC
  • A cron feladatok folyamatosan letöltik és feldolgozzák az EU, az ENSZ és az OFAC listáit
  • Az egyezéskeresés mindig a listák aktuális verzióján fut
  • ML.NET-re épített predikciós mechanizmus az egyezések értékelésére
  • Egyetlen .NET megoldás — szolgáltatásként telepíthető önöknél és nálunk is

Együttműködés

Három mód a megoldásaink üzemeltetésére

A kód nyílt, mindent megcsinálhat saját maga. Ha szeretné, segítünk — a támogatástól a teljesen felügyelt szolgáltatásig.

Fizetett támogatás

A megoldást saját maga üzemelteti, tőlünk pedig garantált segítséget kap — konzultációt, hibaelhárítást és segítséget a frissítéseknél.

Telepítés és üzemeltetés önöknél

A teljes megoldást telepítjük az önök szerverére vagy felhőjébe, és átvesszük az üzemeltetését — frissítések, monitoring és biztonsági javítások.

Tenant a CPD példányán

Nem szeretne semmit üzemeltetni? Vásároljon tenantot a mi példányunkon, és használja a megoldást szolgáltatásként.

Miért nyíltan

Az autorizációs szerver pontosan az a fajta komponens, amelyet senki sem akar maga megírni, ugyanakkor hitelt érdemlően bele kell tudnia nézni a motorháztető alá. Zárt kód ezt a bizalmat nem adja meg.

A megoldást saját hatáskörben is telepítheti és üzemeltetheti — vagy választhat a fenti együttműködési lehetőségek közül.

  • Vendor lock-in nélkül

    Az OpenID Connect és az OAuth 2.0 szabványaira épül. Ha egyszer a távozás mellett dönt, szabványos protokollal távozik, nem a mi konvenciónkkal.

  • Auditálható

    A teljes autorizációs folyamatot sorról sorra végignézheti — akár a saját biztonsági auditjai keretében is.

  • Bevált komponensekre építve

    OpenIddict és ASP.NET Identity. Sem a kriptográfiát, sem a protokollokat nem találtuk fel újra — egyetlen, egyben telepíthető egésszé kapcsoltuk össze őket.

  • Egyelőre proof of concept

    Az autorizációs szerver, a BFF proxy, az alkalmazások regisztrációja és az adminisztráció is működik. A produkciós bevezetéshez a megoldást még finomítjuk, és nem akarjuk az ellenkezőjét állítani.