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.
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.