Az authentikáció kérdése elég érdekes manapság, mivel már nem csak a “bekérem a felhasználónevet, jelszót” változatot kell jellemzően megvalósítani, mikor hitelesíteni akarjuk a felhasználó személyét. Az OpenID és oAuth protokollok úgy biztosítanak hitelesítést, hogy az oldal nem tudja meg a felhasználó jelszavát, az egy harmadik félnél van. A dolog nálam egyéb okokból is aktuális, de az OpenID azért is jöhet a képbe, mert most már mind a három nagy támogatja: a Yahoo!, a Microsoft és a Google is.

Kimazsolázni a különbséget a két megoldás között nem feltétlenül könnyű, én is csak most ismerkedem ezekkel a protokollokkal (ha van tipp, jöhet!), de a lényeg, hogy az OpenID segítségével alapvetően annyit lehet kiszedni a szerverből, hogy sikeres volt-e az authentikáció, vagy nem, míg az oAuth további adatok biztonságos forgalmazását is lehetővé teszi (gondoljunk itt egy API-ra). Mind a két megoldás alapja egy authentikációs szerver, ahol nyilván van tartva a felhasználói azonosítónk és jelszavunk (vagy más formában kínál azonosítási lehetőséget), s ezt a szervert használva léphetünk be különböző oldalakon úgy, hogy közben a céloldal nem fogja megtudni sem az azonosítónkat, sem a jelszavunkat. Hozzáteszem, az OpenID-nak van egy kiegészítése, mely segítségével lehetőség van személyes információkhoz (pl. az azonosító) történő hozzáférésre (akár azok megváltoztatására is), az oAuth keretében pedig magának a protokoll használatának keretében dönthet úgy a szolgáltató, hogy biztosít olyan interfészt, ahogyan ez megtehető. Nyílt protokollokról van szó: ingyenesen használhatóak, és nyílt szabványokra, algoritmusokra épülnek.
Egyik protokollra sem mondanám, hogy egyszerű, mindkettő ide-oda üzengetést tartalmaz, jellemzően a biztonságot szem előtt tartva aláírva valamilyen algoritmussal az üzeneteket. Az OpenID authentikáció kiegészítője az OpenID tulajdonságcsere, ezekkel a doksikkal érdemes kezdeni egy átfogó kép kialakításához, majd mondjuk megnézni egy gyakorlati dokumentációt. Kész kódok is rendelkezésre állnak különböző nyelvekhez, de ehhez már jellemzően érteni kell magát a protokollt, vagy legalábbis a főbb elemeit. Az oAuth-tal történő ismerkedést is az oAuth specifikáció segítségével lehet érdemes kezdeni. Ezután szintén egy gyakorlatibb útmutatót, majd kész kódok nézegetségét tudom ajánlani.
Amit eddig még nem mondtam el, hogy miért is jó nekünk, ha ezekkel megismerkedünk (persze mindenki döntse el maga). Az OpenID kapcsán ha lehetővé tesszük annak használatát oldalunkon, akkor megkönnyíthetjük a felhasználók regisztrációs folyamatát mind fizikailag (pár kattintással túl tudnak lenni rajta – nincsen emailes megerősítés), mind lelkileg (nincs jelszó megadás, és gyors a folyamat). Ez sokat jelenthet, hiszen a felhasználónak megspórolhatunk pár percet – ami nagyon sok, ha azt nézzük, hogy 5 másodpercet sem szoktunk kivárni egy oldal letöltésekor.
Az oAuth akkor jó, hogy olyan webszolgáltatást írunk, mely együtt szeretne működni más szolgáltatásokkal a neten. A régimódi megoldás erre hogy bekérjük a másik szolgáltatás felhasználónevét, jelszavát ha szeretnénk a felhasználó más szolgáltatásnál tárolt adataihoz hozzáférni, ez azonban nem igazán bizalomgerjesztő, hiszen azt le kell tárolnunk: ha hozzánk betörnek, a másik szolgáltatáshoz is nyitott az út, illetve az sem nyugtatja meg a felhasználót, hogy látjuk ezeket az adatait.



