SlideShare a Scribd company logo
1 of 20
Social Login Bevezetés
Reiter István – ASP.NET MVP @ Allwin Kft.
https://reiteristvan.wordpress.com
reiter.istvan@allwin.hu
Mi az az OAuth?
• Online identitás …
• LiveId
• Google account
• Twitter

• … Mindenkinek van
• Használjuk!
Sötét középkor
• Felhasználónév/jelszó
• 3rd party alkalmazások mindenhez hozzáférnek
• Nem lehet visszavonni egyszerűen
• Ha az alkalmazás borul …
Megoldás?
• Szolgáltatások felismerték a problémát …
• … És saját megoldásokat készítettek …
• … Persze minden kicsit különbözött mindentől
Megoldás?
• 2006 – Twitter OpenID
• Kell egy olyan API amivel az authentikáció kidelegálható
• 2007 – OAuth vitafórum
• 2010 – OAuth 1.0
• Csak böngésző, mobil eszközöket nem támogat
OAuth 1.0
• Hash-based message authentication (HMAC)
• POST&https%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.j
son&include_entities%3Dtrue%26oauth_consumer_key%3Dxvz1evFS
4wEEPTGEFPHBog%26oauth_nonce%3DkYjzVBB8Y0ZFabxSWbWovY3
uYSQ2pTgmZeNu2VS4cg%26oauth_signature_method%3DHMACSHA1%26oauth_timestamp%3D1318622958%26oauth_token%3D370
773112GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb%26oauth_versio
n%3D1.0%26status%3DHello%2520Ladies%2520%252B%2520Gentle
men%252C%2520a%2520signed%2520OAuth%2520request%2521
OAuth 1.0
OAuth 2.0
• Lényegesen egyszerűbb
• HMAC -----> HTTPS
• Visszafelé NEM kompatibilis
• Kik használják?
•
•
•
•
•

Facebook
Google
Microsoft
Twitter
… és még sokan mások
OAuth 2.0 – Hol?
• Nem korlátoz böngészőre:
• Server-side (“hagyományos”)
• Client-side (JavaScript, Flash)
• Native (mobil alkalmazások)
OAuth 2.0 - Résztvevők
• Resource owner: a felhasználó
• Resource server: az API
• Authorization server: tokeneket oszt
• Client: 3rd party
• Scope (nem egységes)
OAuth 2.0 - Provider
• Alkalmazásoknak regisztrálniuk kell a provider-nél
• Url, redirect url
• Cserében kapjuk:
• API key: client_id
• client secret: elcserélhető access token-re
OAuth 2.0
OAuth 2.0 - Flow
• A felhasználó használni szeretné az alkalmazásunkat
• https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}

• Opcionális paraméterek:
• State: CSRF (elsődlegesen, de nem erre lett kitalálva)
• Response type: code (URL parameter), token (URL fragment), code%20token
• Scope

• HTTP GET
• HTTP 302 + Location
OAuth 2.0 - Flow
• Authorization code és state a válaszban
• … akárcsak a hibaüzenetek

• responsetype=

• code: becseréljük egy access token-re
• token: ellenőrizzük (inspection endpoint)
• code%20token: választhatunk

• Access token (GET és POST is lehetséges):
• https://graph.facebook.com/oauth/access_token?
client_id={app-id}
&redirect_uri={redirect-uri}
&client_secret={app-secret}
&code={code-parameter}
OAuth 2.0
Bearer Token

• Elég ha birtokunkban van
• Nincs szükség más kulcsra
• HTTP Authorization header
• Ritkán van cache vagy log róla

• Query string vagy form
formában is használható, ha a
provider engedélyezi
OAuth 2.0
GET /calendar/v3/calendars/{calendarId}/acl/{ruleId} HTTP/1.1
Host: www.googleapis.com
Content-length: 0
Authorization: Bearer
ya29.AHES6ZQCRVE_xAGxv1sBcOuasPaRW6CpSLRd_FTSUXWK2q5iQ_B
JDg
OAuth 2.0
• Refresh token: access token mellett érkezhet
• …de Facebook nem ad ilyet

• Új access token-t kérhetünk vele, ha a régi lejárt
• A szabvány nem ad iránymutatást...

• grant_type=refresh_token&refresh_token=SplxlOBeZQQYbYS6
OAuth 2.0 - Problémák
• SSL/TLS: alapos ellenőrzést kíván
• Message Authentication Code (MAC)

• A megvalósítások különböznek, a szabvány csak ajánlásokat ad
• Threat model

• Bejelentkező oldal testreszabása nem lehetséges vagy korlátozott
Köszönöm a figyelmet!
• Kérdések?
• Olvasnivaló
• https://dev.twitter.com/docs/auth/creating-signature
• https://developers.facebook.com/docs/facebook-login/manually-build-alogin-flow/
• https://tools.ietf.org/html/rfc6819
• http://blog.astrumfutura.com/2010/10/do-cryptographic-signatures-beatssltls-in-oauth-2-0/
• https://hueniverse.com/2012/07/oauth-2-0-and-the-road-to-hell/

More Related Content

Viewers also liked

ประวัติส่วนตัว
ประวัติส่วนตัวประวัติส่วนตัว
ประวัติส่วนตัวPoramat Kongkaew
 
Google Analytics- Audiences
Google Analytics- AudiencesGoogle Analytics- Audiences
Google Analytics- AudiencesMelien Lavoie
 
Universidade federal do piauí capa
Universidade federal do piauí capaUniversidade federal do piauí capa
Universidade federal do piauí capaanapister
 
Seguridad e higiene industrial jhon
Seguridad e higiene industrial jhonSeguridad e higiene industrial jhon
Seguridad e higiene industrial jhonJRSB21
 
Brookland Middle School Community Meeting (November 16, 2013)
Brookland Middle School Community Meeting (November 16, 2013)Brookland Middle School Community Meeting (November 16, 2013)
Brookland Middle School Community Meeting (November 16, 2013)DC Department of General Services
 
DCIM - what you should know..
DCIM - what you should know..DCIM - what you should know..
DCIM - what you should know..Jan Wiersma
 
Ud2 documento la revolución digital vista en 2004
Ud2 documento la revolución digital vista en 2004Ud2 documento la revolución digital vista en 2004
Ud2 documento la revolución digital vista en 2004Guardi2627
 
Advanced Auth CA Technologies
Advanced Auth CA TechnologiesAdvanced Auth CA Technologies
Advanced Auth CA TechnologiesMark Basile
 
estructuras organicas.
estructuras organicas.estructuras organicas.
estructuras organicas.giselle98_
 
12 2015 workshop zzp
12 2015 workshop zzp12 2015 workshop zzp
12 2015 workshop zzpfemkebrand
 

Viewers also liked (14)

ประวัติส่วนตัว
ประวัติส่วนตัวประวัติส่วนตัว
ประวัติส่วนตัว
 
Cn7 cd2012
Cn7 cd2012Cn7 cd2012
Cn7 cd2012
 
Pr 111013
Pr 111013Pr 111013
Pr 111013
 
Web 3.0 4.0 5.0
Web 3.0 4.0 5.0Web 3.0 4.0 5.0
Web 3.0 4.0 5.0
 
Google Analytics- Audiences
Google Analytics- AudiencesGoogle Analytics- Audiences
Google Analytics- Audiences
 
Universidade federal do piauí capa
Universidade federal do piauí capaUniversidade federal do piauí capa
Universidade federal do piauí capa
 
140408 resume
140408 resume140408 resume
140408 resume
 
Seguridad e higiene industrial jhon
Seguridad e higiene industrial jhonSeguridad e higiene industrial jhon
Seguridad e higiene industrial jhon
 
Brookland Middle School Community Meeting (November 16, 2013)
Brookland Middle School Community Meeting (November 16, 2013)Brookland Middle School Community Meeting (November 16, 2013)
Brookland Middle School Community Meeting (November 16, 2013)
 
DCIM - what you should know..
DCIM - what you should know..DCIM - what you should know..
DCIM - what you should know..
 
Ud2 documento la revolución digital vista en 2004
Ud2 documento la revolución digital vista en 2004Ud2 documento la revolución digital vista en 2004
Ud2 documento la revolución digital vista en 2004
 
Advanced Auth CA Technologies
Advanced Auth CA TechnologiesAdvanced Auth CA Technologies
Advanced Auth CA Technologies
 
estructuras organicas.
estructuras organicas.estructuras organicas.
estructuras organicas.
 
12 2015 workshop zzp
12 2015 workshop zzp12 2015 workshop zzp
12 2015 workshop zzp
 

Introduction to social login - budapest.NET meetup - Reiter István (ASP.NET MVP)

  • 1. Social Login Bevezetés Reiter István – ASP.NET MVP @ Allwin Kft. https://reiteristvan.wordpress.com reiter.istvan@allwin.hu
  • 2. Mi az az OAuth? • Online identitás … • LiveId • Google account • Twitter • … Mindenkinek van • Használjuk!
  • 3.
  • 4. Sötét középkor • Felhasználónév/jelszó • 3rd party alkalmazások mindenhez hozzáférnek • Nem lehet visszavonni egyszerűen • Ha az alkalmazás borul …
  • 5. Megoldás? • Szolgáltatások felismerték a problémát … • … És saját megoldásokat készítettek … • … Persze minden kicsit különbözött mindentől
  • 6. Megoldás? • 2006 – Twitter OpenID • Kell egy olyan API amivel az authentikáció kidelegálható • 2007 – OAuth vitafórum • 2010 – OAuth 1.0 • Csak böngésző, mobil eszközöket nem támogat
  • 7. OAuth 1.0 • Hash-based message authentication (HMAC) • POST&https%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.j son&include_entities%3Dtrue%26oauth_consumer_key%3Dxvz1evFS 4wEEPTGEFPHBog%26oauth_nonce%3DkYjzVBB8Y0ZFabxSWbWovY3 uYSQ2pTgmZeNu2VS4cg%26oauth_signature_method%3DHMACSHA1%26oauth_timestamp%3D1318622958%26oauth_token%3D370 773112GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb%26oauth_versio n%3D1.0%26status%3DHello%2520Ladies%2520%252B%2520Gentle men%252C%2520a%2520signed%2520OAuth%2520request%2521
  • 9. OAuth 2.0 • Lényegesen egyszerűbb • HMAC -----> HTTPS • Visszafelé NEM kompatibilis • Kik használják? • • • • • Facebook Google Microsoft Twitter … és még sokan mások
  • 10. OAuth 2.0 – Hol? • Nem korlátoz böngészőre: • Server-side (“hagyományos”) • Client-side (JavaScript, Flash) • Native (mobil alkalmazások)
  • 11. OAuth 2.0 - Résztvevők • Resource owner: a felhasználó • Resource server: az API • Authorization server: tokeneket oszt • Client: 3rd party • Scope (nem egységes)
  • 12. OAuth 2.0 - Provider • Alkalmazásoknak regisztrálniuk kell a provider-nél • Url, redirect url • Cserében kapjuk: • API key: client_id • client secret: elcserélhető access token-re
  • 14. OAuth 2.0 - Flow • A felhasználó használni szeretné az alkalmazásunkat • https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri} • Opcionális paraméterek: • State: CSRF (elsődlegesen, de nem erre lett kitalálva) • Response type: code (URL parameter), token (URL fragment), code%20token • Scope • HTTP GET • HTTP 302 + Location
  • 15. OAuth 2.0 - Flow • Authorization code és state a válaszban • … akárcsak a hibaüzenetek • responsetype= • code: becseréljük egy access token-re • token: ellenőrizzük (inspection endpoint) • code%20token: választhatunk • Access token (GET és POST is lehetséges): • https://graph.facebook.com/oauth/access_token? client_id={app-id} &redirect_uri={redirect-uri} &client_secret={app-secret} &code={code-parameter}
  • 16. OAuth 2.0 Bearer Token • Elég ha birtokunkban van • Nincs szükség más kulcsra • HTTP Authorization header • Ritkán van cache vagy log róla • Query string vagy form formában is használható, ha a provider engedélyezi
  • 17. OAuth 2.0 GET /calendar/v3/calendars/{calendarId}/acl/{ruleId} HTTP/1.1 Host: www.googleapis.com Content-length: 0 Authorization: Bearer ya29.AHES6ZQCRVE_xAGxv1sBcOuasPaRW6CpSLRd_FTSUXWK2q5iQ_B JDg
  • 18. OAuth 2.0 • Refresh token: access token mellett érkezhet • …de Facebook nem ad ilyet • Új access token-t kérhetünk vele, ha a régi lejárt • A szabvány nem ad iránymutatást... • grant_type=refresh_token&refresh_token=SplxlOBeZQQYbYS6
  • 19. OAuth 2.0 - Problémák • SSL/TLS: alapos ellenőrzést kíván • Message Authentication Code (MAC) • A megvalósítások különböznek, a szabvány csak ajánlásokat ad • Threat model • Bejelentkező oldal testreszabása nem lehetséges vagy korlátozott
  • 20. Köszönöm a figyelmet! • Kérdések? • Olvasnivaló • https://dev.twitter.com/docs/auth/creating-signature • https://developers.facebook.com/docs/facebook-login/manually-build-alogin-flow/ • https://tools.ietf.org/html/rfc6819 • http://blog.astrumfutura.com/2010/10/do-cryptographic-signatures-beatssltls-in-oauth-2-0/ • https://hueniverse.com/2012/07/oauth-2-0-and-the-road-to-hell/

Editor's Notes

  1. Minden egyes kéréshez generálni kell ilyen signaturet, amit a szerver majd validál
  2. Resource server: erőforrásokAuth. Server: tokeneket oszt a 3rd party alkalmazásoknak, amelyek majd hozzáférhetnek velük a resource serverhez
  3. SSL – megadja a biztonság látszatát, de sok a hibalehetőségTanúsítvány láncolat validálása
  4. Eran Hammer – a tanusítvány az oldalon lejárt lejárt 