Programovanie

GNAP: OAuth budúcej generácie

Písal sa rok 2012 a web prepašoval revidovaný bezpečnostný protokol s názvom OAuth 2, ktorý používateľom umožňoval pomocou poskytovateľov zabezpečenia jednoduché prihlásenie na webové stránky. Mnoho systémov jednotného prihlásenia, od AWS’s Cognito po Okta, implementuje OAuth. OAuth je to, čo vám umožňuje „autentifikáciu pomocou Google“ alebo iných poskytovateľov na úplne inom webe alebo v aplikácii.

Funguje to ako pivný festival. Idete k stolu a overíte sa svojím preukazom totožnosti (a nejakými peniazmi) a oni vám dajú žetóny. Odtiaľ pôjdete ku každému pivnému stanu a vymeníte žetón za pivo. Individuálny pivovar nemusí skontrolovať vaše občianske oprávnenie alebo sa vás pýtať, či ste zaplatili. Iba vezmú žetón a podajú vám pivo. OAuth funguje rovnako, ale namiesto pív má webové stránky.

Je smutné, že OAuth je najlepší pivný festival, aký 2020 ponúka.

Hovoril som s Danom Moorom z FusionAuth o OAuth a navrhovanej náhrade s názvom GNAP - ktorá sa pravdepodobne bez G vyslovuje ako „zdriemnutie“. Výslovnosť podporuje myšlienku, že bezpečnosť je skutočne vzrušujúca oblasť. GNAP rieši niektoré obmedzenia OAuth a korení ho novými funkciami.

Prečo nahradiť alebo lepšie rozšíriť OAuth? Protokol OAuth bol navrhnutý okolo prehľadávačov. Predpokladá, že pôvodca, ktorý podáva žiadosť, dokáže spracovať presmerovanie HTTP. Toto zameranie na webový prehliadač je kameňom úrazu pre mobilné aplikácie alebo akýkoľvek druh „veci“ na „internete vecí“. Okrem toho strany OAuth, ako je rok 2007, vyžaduje, aby ste namiesto formátu JSON zverejnili parametre formulára.

Špecifikácia protokolu OAuth bola na niektorých miestach neurčitá a svet sa zmenil od roku 2012. Existuje množstvo RFC a BCP, ktoré sú v podstate doplnkovými špecifikáciami, ktoré musíte implementovať, aby ste získali viac funkcií, lepšie zabezpečenie a všeobecnú kompatibilitu. Samostatné úsilie s názvom OAuth 2.1 dúfa, že sa niektoré z týchto doplnkov zbalia do koherentnejších samostatných špecifikácií. Niektoré motivácie pre OAuth 2.1 nájdete v Lee McGovern z príspevku spoločnosti Okta „Koľko RFC je potrebných na zmenu žiarovky.“ OAuth 2.1 je na rozdiel od GNAP iba ​​prírastkovým vydaním bez nových významných zmien, okrem kombinácie balíka špecifikácií do jednej špecifikácie.

Špecifikácia GNAP je stále v počiatočných fázach. Autori GNAP plánujú ísť ďalej ako OAuth 2.1 a zmeniť podstatu samotného protokolu. Namiesto použitia parametrov HTTP môžete použiť JSON. Koncové body aplikácie sú zistiteľné. Nemusíte podporovať presmerovania (alebo rôzne hacky okolo toho). Moore označuje tieto zmeny pod nádherným pojmom „ergonómia vývojárov“.

Kľúčovým cieľom GNAP je oddelenie toho, kto požaduje zdroje (RQ) a kto tieto zdroje vlastní (RO).

IETF

GNAP taktiež navrhuje podporu nových bezpečnostných prvkov, ako sú:

  • Asynchrónne spustenie a spustenie adresy URL aplikácie. Jedná sa o rôzne autentifikačné cesty, ktoré umožňujú klientovi autentifikáciu bez presmerovania. GNAP tiež umožňuje aplikáciám autentifikáciu k prostriedkom tretích strán, ku ktorým nemá zdrojový server a autorizačný server priamy prístup.
  • Vyžiadajte si pokračovanie. Umožňujú klientom počas procesu overovania vyjednávať veci, ako sú presmerovania alebo iné podrobnosti autentifikácie. Tiež umožňujú klientovi vyjednať ďalšie privilégiá alebo prístupové tokeny.
  • Viaceré prístupové tokeny. Umožňujú klientom autentifikáciu s mnohými prostriedkami naraz, napríklad ako používateľ aj správca.
  • Tokeny obmedzenia odosielateľa. Aj keď pre tuto funkcionalitu existujú doplnky k OAuth 2 s názvom DPOP a MTLS, GNAP by to zabudoval priamo do protokolu. Vráťte sa k nášmu príkladu na pivný stan. Čo keby sme tiež museli šepkať heslo do ucha predajcu a zároveň mu odovzdávať token? Keby náš token vypadol (alebo bol zadržaný), nevadilo by to, pretože jeho nosič by nemal heslo.
  • A GNAP spôsobuje, že duch Kerberos kričí.

Znie to dobre? Môžete dnes začať používať GNAP? Ak máte záujem o spoluprácu, môžete rozdvojiť jeden z prototypov, ktorý prešiel do existujúceho návrhu na GitHub.

Podľa Moora sa autori zameriavajú na vydanie GNAP v roku 2022. Pretože každý deň v roku 2020 je ako týždeň v typickom roku, GNAP je ďaleko. Pracovná skupina GNAP však hľadá spolupracovníkov a vy sa môžete pripojiť k zoznamu pošty a ponúknuť svoju spätnú väzbu a odborné znalosti. Myslím, že nemôžete opraviť všetko na svete, ale môžete pomôcť aspoň s opravou OAuth.

$config[zx-auto] not found$config[zx-overlay] not found