8 Nyílt forráskódú engedélyezési/hitelesítési (OAuth) megoldás a következő projekthez

Jelentkezett már be egy webhelyre a Google, a Facebook, a LinkedIn vagy akár a Github használatával? Mit szólnál, ha fájlokat töltenél fel egy webhelyre közvetlenül a felhőből, például a Google Drive-fiókodból?

Nos, mindkettő példa arra, hogy webhelyek vagy alkalmazások hozzáférnek más webhelyeken vagy szolgáltatásokon tárolt információkhoz. De hogyan érhető el ez anélkül, hogy veszélyeztetné személyes adatai biztonságát, és nem adná át hitelesítő adatait egy harmadik féltől származó alkalmazásnak?

Vegyük például a Facebookot; A Facebook használhatja a Google-fiókjában tárolt névjegyeket, hogy megtalálja ismerőseit a platformon. Ahhoz, hogy a Facebook hozzáférjen a névjegyeihez és megtalálja az ismerőseit, hozzáférést kell adnia a Google-fiókjához.

Néhány évvel ezelőtt ez nagyon durva módon történt, amikor megadtad a Facebooknak a Google e-mail címét és a Gmail jelszavát, amelyek segítségével bejelentkezett a Google fiókjába, és hozzáférhet a névjegyeihez. Sok alkalmazás, és nem csak a Facebook, valósította meg a más webhelyeken tárolt felhasználói adatok engedélyezését ilyen módon.

Mivel sok harmadik féltől származó alkalmazás valósította meg az engedélyezést ilyen módon, a felhasználóknak rövidebb vége volt, mivel a szolgáltatásokhoz való hozzáférés érdekében veszélyeztetniük kellett a biztonságukat. Egy rosszindulatú fejlesztő könnyen visszaélhet a felhasználók hitelesítő adataival a felhasználók kárára. Ez tette szükségessé az OAuth fejlesztését.

Az Internet Engineering Task Force (IETF) szerint az OAuth egy engedélyezési keretrendszer, amely lehetővé teszi, hogy harmadik féltől származó alkalmazások hozzáférjenek egy szolgáltatáshoz az erőforrás tulajdonosa nevében. Az OAuth lehetővé teszi a felhasználók számára, hogy korlátozott hozzáférést biztosítsanak harmadik féltől származó alkalmazásokhoz.

Ez lehetővé teszi az alkalmazások számára, hogy hozzáférjenek online erőforrásaikhoz, például profiljaikhoz vagy egy másik alkalmazásban tárolt személyes adataikhoz anélkül, hogy fel kellene adniuk bejelentkezési adataikat az erőforráshoz hozzáférni próbáló harmadik féltől származó alkalmazás számára.

Ezt gyakran delegált hozzáférésnek nevezik, amikor a felhasználók korlátozott hozzáférést adnak harmadik féltől származó alkalmazásoknak egy másik szolgáltatáson tárolt erőforrásaikhoz anélkül, hogy megosztanák felhasználói hitelesítő adataikat.

Az OAuth 2.0 az OAuth protokoll legszélesebb körben használt verziója, és a webes hitelesítés és hitelesítés kulcsfontosságú összetevője.

Az OAuth-ot széles körben használják a mobilalkalmazások hitelesítésében, az API-k védelmében, lehetővé téve az egyszeri bejelentkezést több alkalmazáshoz, valamint a harmadik felek delegált hozzáférését, valamint lehetővé teszi a felhasználók számára a harmadik féltől származó alkalmazásoknak adott engedélyek kezelését és ellenőrzését.

A nyílt forráskódú OAuth-platformok használatának előnyei.

A nyílt forráskódú OAuth-platformok az OAuth-szabvány nyílt forráskódú megvalósításaira utalnak. Tekintettel arra, hogy az alkalmazásokat különféle programozási nyelvek és keretrendszerek használatával fejlesztik, az OAuth platformok olyan könyvtárakat és eszközöket biztosítanak, amelyek lehetővé teszik a fejlesztők számára, hogy az OAuth-funkciókat könnyen integrálják alkalmazásaikba. A nyílt forráskódú OAuth-platformok használatának néhány előnye:

A kód minősége és átláthatósága

A nyílt forráskódú platformok lehetővé teszik a felhasználók számára, hogy hozzáférjenek kódjukhoz. Ez abból a szempontból előnyös, hogy sok, sokrétű készségekkel és tapasztalattal rendelkező fejlesztő átmegy a kódon, és problémákat vethet fel, amelyeket a kóddal kapcsolatban észrevehet.

  Hogyan töltheti le az összes fényképét az Instagramról

Ez segít abban, hogy a kód a legjobb minőségű legyen, sebezhetőségek és hibák nélkül. A vállalatok a termék használatának elköteleződése előtt átnézhetik a kódot, hogy meghatározzák, mennyire tudja kielégíteni az igényeiket.

Költséghatékonyság

A nyílt forráskódú szoftvermegoldások használata ingyenes, így a vállalatok megtakaríthatják azokat a költségeket, amelyek a megfelelő OAth-platformok használatára vonatkoznának. Ennek megvan az az előnye, hogy még a nagy költségvetéssel nem rendelkező vállalatok is biztosíthatják felhasználóik biztonságának veszélyét.

Kerülje el a szállító bezárását

Nyílt forráskódú OAuth-szolgáltatók használata esetén egyszerűen válthat a különböző OAuth-szolgáltatók között anélkül, hogy át kellene terveznie a teljes alkalmazásarchitektúrát, hogy megfeleljen egy új szállítónak.

A nyílt forráskódú OAuth megoldások megfelelnek a széles körben elfogadott szabványoknak, lehetővé téve számukra a kompatibilitást és az interoperabilitást más rendszerekkel. Ez megkönnyíti a váltást a különböző nyílt forráskódú megoldások között.

Közösségi támogatás

A nyílt forráskódú megoldásokat gyakran fejlesztők nagy közössége támogatja, akik azon dolgoznak, hogy javítsák azokat, és frissítsék a szoftvert. Ez biztosítja, hogy a szoftver ne csak a fejlesztők által használt sok eszközzel működjön együtt, hanem a szoftverrel kapcsolatos problémákat is gyorsabban meg lehessen oldani, mivel biztosan lesz valaki, aki ismeri a szoftvert, és kész segíteni.

A nyílt forráskódú OAuth-platformok értékelésének fő kritériumai

Néhány kulcsfontosságú tényező, amelyet figyelembe kell venni egy nyílt forráskódú OAuth-platform értékelésekor:

Biztonsági és titkosítási intézkedések

Fontos, hogy az Ön által használt nyílt forráskódú OAuth-megoldás szilárd, vízálló biztonsági és titkosítási intézkedésekkel rendelkezzen.

Ennek az az oka, hogy a platformok érzékeny felhasználói adatokat kezelnek és erőforrásokat érnek el. A platformnak támogatnia kell a biztonságos kommunikációt, és biztosítania kell a hozzáférési tokenek védelmét szolgáló mechanizmusokat is.

Könnyű integrálhatóság és fejlesztőbarát API-k

Mivel az OAuth-platformok alkalmazásokba vannak integrálva, rendkívül fontos, hogy az OAuth-megoldás világos és intuitív API-kat, dokumentációt és szoftverfejlesztő készleteket (SDK) kínáljon, amelyek leegyszerűsítik az integrációs folyamatot.

A platform végpontjait is jól dokumentálni kell kódmintákkal és könyvtárakkal a népszerű programozási nyelvekhez és keretrendszerekhez.

Közösségi támogatás és aktív fejlesztés

A nyílt forráskódú erőforrások felhasználóinak és közreműködőinek erős aktív közössége egészséges környezetet jelez az erőforrások körül. Ebben az esetben ez azt jelenti, hogy az OAuth-t folyamatosan fejlesztik és használják.

Ezenkívül egy aktív közösség hasznos forrásokat és támogatást nyújthat, amely segíthet a nyílt forráskódú OAuth-megoldások megértésében és használatában.

Skálázhatóság és teljesítmény

Az alkalmazásoknak gyakran növekszik a felhasználói bázisa, ahogy egyre többen ismerkednek meg az alkalmazással. Ezért fontos, hogy minden használt OAuth-megoldás támogassa a méretezést a felhasználói bázis növekedésével, és képes legyen kezelni nagyszámú egyidejű kérést.

Testreszabási és bővítési lehetőségek

Az OAuth-megoldásoknak nagymértékben testreszabhatónak kell lenniük annak érdekében, hogy alkalmazkodjanak a különféle üzleti követelményekhez és logikához a felhasználók széles körében. Leegyszerűsítve: a vállalkozásoknak nem kellene egy OAuth-platform köré építeniük logikájukat.

Ehelyett az OAuth-megoldásnak elég testreszabhatónak és bővíthetőnek kell lennie ahhoz, hogy az üzleti logika megváltoztatása nélkül megvalósítható legyen. Ez egyéni hitelesítési folyamatok, jogcímek és felhasználói attribútumok hozzáadásával érhető el.

A fenti megfontolásokat szem előtt tartva, íme néhány a legjobb nyílt forráskódú OAuth-megoldások közül, amelyeket a következő projektjéhez használhat

  Az Apple Pay használata iPhone X-en

SzuperTokenek

A SuperTokens egy nyílt forráskódú bejelentkezési szolgáltató, amely széleskörű használattal büszkélkedhet olyan induló vállalkozások körében, mint a HackeRank, a Skoot és a Food Market Hub, és többek között olyan cégeknél dolgozó mérnökök is használják, mint a Google, az Amazon és a Meta.

A SuperTokens nagymértékben testreszabható, bővíthető és felülírható összetevőket kínál, amelyek lehetővé teszik a felhasználók számára, hogy a felhasználói hitelesítést könnyen integrálják az alkalmazásukba.

A SuperTokens nemcsak egyszerűen és gyorsan integrálható, hanem előre beépített felhasználói felületeket is kínál a regisztrációs oldalakhoz és a felhasználói hitelesítési funkciókat. A felhasználóknak lehetőségük van arra is, hogy gyorsan elkészítsék saját bejelentkezési adataikat a SuperTokenshez tartozó segédfunkciók segítségével.

A SuperTokens használatával megvalósíthatja az e-mail jelszavas bejelentkezést, az OAuth használatával való közösségi bejelentkezést és az alkalmazásokba történő jelszó nélküli bejelentkezést. Az alkalmazásokhoz ugyanazon a bejelentkezési képernyőn használhatja a közösségi bejelentkezést és az e-mail jelszó bejelentkezést is.

Cerbos

A Cerbos egy nyílt forráskódú, nyelv-agnosztikus, méretezhető engedélyezési platform, amelyet a Business Wire az API Security legjobbjának ismerte el 2022-ben.

A Cerbos, amely a szerepek és engedélyek megvalósításának engedélyezési rétege, számos identitásszolgáltatóval működik együtt, többek között az Auth0, a Magic, a WorkOS, az Okta és a FusionAuth szolgáltatókkal.

A Cerbos lehetővé teszi, hogy központilag kezelje az engedélyezési logikát az összes alkalmazásban, és azonnal módosítsa az alkalmazások engedélyezési és hitelesítési kezelését.

Ezenkívül a Cerbos környezettudatos szerepkör-definíciókat és attribútumokat kínál, valamint egy nyelv-agnosztikus API-t tesz közzé, amely bármely technológiai veremhez használható.

Mindezt összefoglalva, a Cerbos hontalan és saját üzemeltetésű, és szerver nélküli platformokon, bármilyen nyilvános vagy privát felhőn, vagy akár magántulajdonban lévő adatközponton is tárolható.

Útlevél

A Passport egy nagyon népszerű hitelesítési köztes szoftver a Node.js keretrendszerhez, és a Node.js háttérprogrammal épített alkalmazásokban hitelesíti a bejövő kéréseket.

A hitelesítés stratégiáknak nevezett bővítmények segítségével történik. A Passport akasztókat biztosít a fejlesztőknek a hitelesítés sikertelensége vagy sikertelensége esetén végrehajtandó műveletek vezérléséhez.

A Passport több mint 500 hitelesítési stratégiát kínál, és lehetővé teszi az egyszeri bejelentkezést OpenID és OAuth segítségével. Támogatja továbbá a tartós munkameneteket, a dinamikus hatókört és engedélyeket, az egyéni stratégiák megvalósítását, valamint a sikeres és kudarcok egyszerű kezelését a hitelesítés során.

Ezenkívül a Passport.js nem csatol útvonalakat a Node.js alkalmazásokban, és nem feltételez semmilyen konkrét adatbázissémát, így lehetővé teszi a fejlesztő számára, hogy minden alkalmazásszintű döntést meghozzon.

Auth.js

Az Auth.js egy nyílt forráskódú hitelesítési megoldás, amely számos előtér-keretrendszerrel működik, többek között a Next.js, a SvelteKit és a SolidStart.

Az Auth.js-t számos OAuth-verzióval való együttműködésre tervezték. Támogatja az állapot nélküli hitelesítést bármilyen háttérrel, e-mail/jelszó nélküli hitelesítést és JSON webes tokeneket, valamint adatbázis-munkameneteket.

Bár az Auth.js-t kiszolgáló nélküli architektúrákhoz tervezték, bárhol futtatható, beleértve többek között az AWS Lambdát, a Dockert és a Heroku-t.

Az Auth.js emellett garantálja a felhasználóknak adataik ellenőrzését, és adatbázis nélkül is működhet, annak ellenére, hogy beépített támogatással rendelkezik az olyan népszerű adatbázisokhoz, mint a MySQL, Postgres, MongoDB, SQLite, MariaDB és Microsoft SQL Server.

Az Auth.js webhelyek közötti kéréshamisítási (CSRF) tokeneket használ a POST útvonalakon, titkosítja a JSON webes tokeneket, és automatikusan szimmetrikus aláírási és titkosítási kulcsokat generál a fejlesztők kényelme érdekében.

Kulcsköpeny

A Keycloak egy nagyon népszerű nyílt forráskódú identitás- és hozzáférés-kezelési megoldás. A Keycloak szabványos protokollokon alapuló megoldás, amely támogatja az OAuth 2.0-t, a Security Assertion Markup Language-t (SAML) és az OpenID Connect-et.

  Hogyan lehet mindkét oldalról törölni az üzeneteket az Instagramon

Nyílt forráskódú megoldásként a Keycloak nagyon könnyen integrálható, és olyan funkciókkal rendelkezik, mint például az egyszeri bejelentkezés, amely lehetővé teszi a felhasználók számára, hogy több alkalmazásba is bejelentkezzenek a Keycloak egyetlen bejelentkezésével.

Ez a fejlesztők számára is előnyös, mivel nem nekik kell foglalkozniuk a felhasználók hitelesítésével és tárolásával, valamint a bejelentkezési űrlapok elkészítésével az alkalmazásaikban.

Egy olyan terület, ahol a KeyCloak kiemelkedik, az alkalmazásokkal való egyszerű integráció. A KeyCloak segítségével egyszerűen hozzáadhatja a közösségi hálózatokon keresztüli alkalmazásokba való bejelentkezéshez anélkül, hogy módosítania kellene az alkalmazást vagy a kódot.

Mindez egy adminisztrációs konzolon keresztül történik, ahol további Keycloak funkciókat is konfigurálhat, például a felhasználók összevonását és az identitásközvetítést. A felügyeleti konzolon keresztül alkalmazásokat és szolgáltatásokat is létrehozhat és kezelhet, valamint finomhangolhatja az engedélyezési házirendeket.

Apereo CAS

Az Apereo CAS egy nyílt forráskódú egyszeri bejelentkezési megoldás és identitásszolgáltató. A CAS a hitelesítési protokollok széles skáláját támogatja, többek között az OAuth 2.0, SAML, OpenID, REST és WS-Federation.

A CAS beépített támogatást nyújt a jelszókezeléshez, az értesítésekhez, a használati feltételekhez és a megszemélyesítéshez.

A CAS támogatja a csatlakoztatható hitelesítést, a külső identitásszolgáltatók, például a Facebook, a Twitter és az OpenID Connect számára delegált hitelesítést, valamint a többtényezős hitelesítést olyan szolgáltatókon keresztül, mint a Google Authenticator, az Authy, a YubiKey, az Acceptto és az Inwebo.

A CAS használatához a legjobb, ha hivatalosan támogatott kliensplatformjaival használja, beleértve a Java, .NET, Apache és PHP-t.

Ory Kratos

Az Ory Kratos egy robusztus és funkciókban gazdag felhasználófelügyeleti rendszer, amely a felhőhöz készült. Bár az Ory Kratos Go nyelven íródott, minden programozási nyelvhez SDK-k tartoznak, valamint testreszabható bejelentkezés, regisztráció és profilkezelés.

Ezenkívül az Ory Kratos bármilyen UI keretrendszerrel működik, és minimális kódot igényel a beállításához.

Az Ory Kratos néhány figyelemre méltó funkciója közé tartozik a többtényezős hitelesítés különféle szolgáltatókkal, az önkiszolgáló bejelentkezés és regisztráció, a közösségi hálózatba való bejelentkezés, a fiókellenőrzés és -helyreállítás, valamint a felhasználókezelés.

A felhasználókezelés lehetővé teszi identitások és adataik létrehozását, frissítését és törlését a felhasználói bázisban. Végül az Ory Kratos lehetővé teszi a személyre szabható identitásmodellek használatát, ahol saját felületeket hozhat létre, és egyéni mezőket határozhat meg, például neveket, címeket vagy kedvenc háziállatokat.

Logto

Dokumentációja szerint a Logto egy költséghatékony nyílt forráskódú alternatívája az Auth0-nak, amely egy szabadalmaztatott hitelesítési és engedélyezési megoldás. A Logto a biztonságos hitelesítéshez és engedélyezéshez szükséges összes szolgáltatást megfizethetőbb áron kínálja.

A Logto használatra kész felügyeleti API-val érkezik, amely hitelesítési szolgáltatóként használható. SDK-kkal is rendelkezik, amelyek lehetővé teszik a Logto egyszerű és gyors integrációját az Ön által épített bármely alkalmazással.

A hitelesítéshez az OpenID Connect (OIDC) szolgál, amely kiterjeszti az OAuth 2.0 engedélyezési protokollt, míg a szerepkör alapú hozzáférés-vezérlés (RBAC) az engedélyezésre.

A LogTo segítségével alkalmazásai megvalósíthatják a jelszó nélküli bejelentkezési közösségi bejelentkezést, és képesek kezelni azokat a felhasználókat, akik elfelejtették bejelentkezési hitelesítő adataikat. A fejlesztés még egyszerűbbé és gyorsabbá tétele érdekében a LogTo gyönyörű előre elkészített felhasználói felület-összetevőket kínál testreszabható CSS-sel.

A felhasználók hozzáférést kapnak felhőplatformjukhoz is, ahol személyre szabhatják, integrálhatják és megtekinthetik az alkalmazásukban megvalósított hitelesítést.

Következtetés

Amikor a hitelesítést és engedélyezést alkalmazza az alkalmazásban, számos nyílt forráskódú megoldás létezik, amelyek rengeteg pénzt takarítanak meg Önnek és vállalkozásának. Vegye fontolóra a cikkben ismertetett megoldások bármelyikét az üzleti és a kritikus felhasználói adatok biztonsága érdekében.

Felfedezheti a legjobb felhasználói hitelesítési platformokat is.