OAuth 2.0 engedélyezés

Az OAuth 2.0 egy engedélyezési keretrendszer, amely a védett erőforrásokhoz való hozzáférés engedélyezésének de facto szabványává vált. Lehetővé teszi harmadik féltől származó alkalmazások számára, hogy hozzáférjenek a felhasználói adatokhoz anélkül, hogy a felhasználó hitelesítő adatai kikerülnének. Jelszavak megosztása helyett a szolgáltatások tokeneket biztosítanak.

Háttér

Képzelje el, hogy egy harmadik féltől származó alkalmazást szeretne használni, amelynek hozzá kell férnie a Google-fiókja adataihoz. Nem szeretné megadni ennek a harmadik feles alkalmazásnak a Google-felhasználónevét és -jelszavát, igaz? Itt jön képbe az OAuth. Lehetővé teszi, hogy hozzáférést biztosítson ennek az alkalmazásnak a Google-adataihoz anélkül, hogy megosztaná Google-hitelesítő adatait.

OAuth 2.0 a LoadFocus használatával

Az OAuth 2.0 alapjai

Az OAuth 2.0 a kliens-fejlesztő egyszerűségére összpontosít, miközben specifikus engedélyezési folyamatokat biztosít webalkalmazásokhoz, asztali alkalmazásokhoz, mobiltelefonokhoz és más eszközökhöz. Íme egy egyszerűsített áttekintés:

  • Erőforrás tulajdonos: A felhasználó, aki engedélyezi egy alkalmazás számára a fiókjához való hozzáférést. Az alkalmazás hozzáférése a felhasználó fiókjához az engedélyezett "hatókörre" korlátozódik (pl. egy adott típusú adat olvasása vagy írása).

  • Kliens: Az alkalmazás, amely hozzá szeretne férni a felhasználó fiókjához. Ehhez először a felhasználónak engedélyeznie kell, és az engedélyezést az API-nak érvényesítenie kell.

  • Erőforrás szerver: A felhasználói fiókokat üzemeltető szerver. Képes elfogadni és válaszolni a védett erőforrás-kérésekre hozzáférési tokenek használatával.

  • Engedélyezési szerver: Ez a szerver ellenőrzi a felhasználó személyazonosságát, majd hozzáférési tokeneket ad ki az alkalmazásnak.

OAuth 2.0 folyamatok

Több "folyamat" vagy "engedélyezési típus" létezik különböző típusú alkalmazásokhoz és felhasználási esetekhez:

  • Authorization Code (webszerveren futó alkalmazásokhoz): Ez a leggyakoribb folyamat, különösen webalkalmazásokhoz. A felhasználó átirányítása a szolgáltatáshoz, ahol bejelentkezik. Bejelentkezés után visszairányítják az alkalmazásba egy engedélyezési kóddal, amelyet az alkalmazás hozzáférési tokenre cserélhet.

  • Implicit (böngészőben futó alkalmazásokhoz): Ez a folyamat felhasználói ügynök alapú alkalmazásokhoz (pl. egyoldalas alkalmazások) való, ahol a hozzáférési token azonnal visszakerül egy extra engedélyezési kód cserélési lépés nélkül.

  • Resource Owner Password Credentials: Ez a folyamat lehetővé teszi az alkalmazás számára, hogy közvetlenül megadja a felhasználó felhasználónevét és jelszavát. Csak megbízható alkalmazásoknál ajánlott, mivel a felhasználó hitelesítő adatainak megosztásával jár.

  • Client Credentials: Akkor használják, amikor maga a kliens az erőforrás tulajdonosa; például, amikor a kliens egy háttérszolgáltatás.

Tokenek

A felhasználó hitelesítő adatai helyett az OAuth 2.0 tokeneket használ. Két típus létezik:

  • Hozzáférési token: Lehetővé teszi az alkalmazás számára, hogy API-kéréseket tegyen a felhasználó nevében. Rövid élettartamú.

  • Frissítési token: Használható új hozzáférési token beszerzésére, ha az eredeti hozzáférési token lejárt. Hosszabb élettartamú, mint a hozzáférési token.

Biztonság

Az OAuth 2.0 az SSL/TLS protokollra támaszkodik a biztonság érdekében. Biztosítja az adatok bizalmasságát a kliens, az engedélyezési szerver és az erőforrás szerver között. Még ha a támadóknak sikerül is elfogniuk egy hozzáférési tokent, nem használhatják a lejáratán túl (jellemzően rövid időtartam) vagy az adott hatókörön kívül.

Összefoglalás

Az OAuth 2.0 egy erős és rugalmas keretrendszer, amely lehetővé teszi harmadik féltől származó alkalmazások számára a felhasználói adatokhoz való hozzáférést a felhasználói hitelesítő adatok felfedése nélkül. Nélkülözhetetlen eszközzé vált a modern weben, biztonságos és hatékony módot biztosítva a felhasználóknak és fejlesztőknek a jogosultságok megadásához és kezeléséhez különböző szolgáltatások és alkalmazások között.