Your SlideShare is downloading. ×
OAuth 2.0 a Zend Framework
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

OAuth 2.0 a Zend Framework

2,512
views

Published on

OAuth 2.0 - co to je, jak funguje, implicit a authorization code grant, sekvenční diagram, ukázka v Zend Framework.

OAuth 2.0 - co to je, jak funguje, implicit a authorization code grant, sekvenční diagram, ukázka v Zend Framework.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,512
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. OAuth 2.0#ZFMeetup, 9. únor 2012Ondřej Machuldaondrej.machulda@gmail.comhttp://o.vlastovka.eu @OndraM
  • 2. OAuth – WTF● Open Authorization● „Otevřený standard pro autorizaci“● Autorizace vs. autentizace – autentizace – kdo jsem (identita) – autorizace – co můžu (přístup k prostředkům)● Sdílení dat mezi službami (API)● Vznik nedávno (1.0 v roce 2006/7)● OAuth 2.0, draft #23● Zend_Oauth 2
  • 3. OAuth 2.0 – WHO 3
  • 4. OAuth 2.0 – WHO 4
  • 5. OAuth 2.0 - možnosti● Client side („Implicit grant“) ● Zjednodušené, pro client-only aplikace (AJAX)● Server side („ Authorization Code Grant“) ● Consumer (client) – naše app, chce data uživatele uložena u providera ● Uživatel – má data u providera, chce povolit přístup k nim consumerovi ● Provider (resource server) – poskytuje API pro přístup k datům uživatelů 5
  • 6. OAuth 2.0 – jak na to● Registrace „OAuth consumera“ u providera ● callback url ● client_id, client_secret ● captcha ● Např.: – https://developers.facebook.com/apps – https://foursquare.com/oauth/register – https://dev.twitter.com/apps/new 6
  • 7. OAuth 2.0 – jak na to● Registrace „OAuth consumera“ u providera ● callback url ● client_id, client_secret ● captcha ● Např.: – https://developers.facebook.com/apps – https://foursquare.com/oauth/register – https://dev.twitter.com/apps/new 7
  • 8. OAuth 2.0 – jak na to● Registrace „OAuth consumera“ u providera ● callback url ● client_id, client_secret ● captcha ● Např.: – https://developers.facebook.com/apps – https://foursquare.com/oauth/register – https://dev.twitter.com/apps/new 8
  • 9. OAuth 2.0 – jak na to● Registrace „OAuth consumera“ u providera ● callback url ● client_id, client_secret ● captcha ● Např.: – https://developers.facebook.com/apps – https://foursquare.com/oauth/register – https://dev.twitter.com/apps/new 9
  • 10. OAuth 2.0 – jak to funguje 10
  • 11. OAuth 2.0 – jak to funguje 11
  • 12. 1. Žádost o autorizaci na autorizačním URL● https://www.facebook.com/dialog/oauth? ● response_type = code ● client_id = přidělené CLIENT_ID ● redirect_uri = http://naše.callback/url/ ● scope = k čemu chceme o přístup ● state = XSRF● https://www.facebook.com/dialog/oauth? client_id=(...)&response_type=code&redirect_uri=http%3A%2F %2Foauth2.local%2Ffacebook%2Fcallback&scope=user_about_me %2Cuser_photos%2Coffline_access 12
  • 13. 2. Autorizační stránka● Nejprve autentizace uživatele – pokud není již přihlášen● Pak autorizace – povolí přístup k datům dle scope● Může také rovnou přesměrovat (není to ale ve specifikaci) 13
  • 14. 2. Autorizační stránka – příklad 14
  • 15. 2. Autorizační stránka – příklad 15
  • 16. OAuth 2.0 – jak to funguje 16
  • 17. 4. Přesměrování na redirect_uri● Při chybě (uživatel odmítne aj.) ● http://redirect.uri?error=REASON● Při potvrzení ● http://redirect.uri? – code = kód, na jehož základě získáme token (další krok) – state = XSRF 17
  • 18. OAuth 2.0 – jak to funguje 18
  • 19. 5. Access token request● Provede naše aplikace asynchronně● HTTP POST*● https://graph.facebook.com/oauth/access_token ● client_id ● client_secret – není odhaleno uživateli ● redirect_uri – musí být stejné jako v kroku 1. ● code – viz předchozí krok 19
  • 20. 6. Access token, woot!● Když vše souhlasí, vrátí nám provider token● Bordel ve formátech: query string, JSON...● { "access_token":"2YotnFZFEjr1zCsicMWpAA", "expires_in":3600, "refresh_token":"tGzv3JOkF0XG5Qx2TlKW" }● Token uložíme – session, databáze 20
  • 21. 7. Zobrazení potvrzení● Zobrazíme uživateli, že je přihlášen● S tokenem (= přístupový klíč) už můžeme dělat požadavky do API providera (než vyprší...) 21
  • 22. Example app Uka to! github.com/OndraM/oauth2-example 22
  • 23. Example app 23
  • 24. Real-world app Wanna more! 24
  • 25. Real-world app 25
  • 26. Děkuji za pozornost Prezentace ke stažení: www.slideshare.net/OndraM Zdrojáky aplikace: github.com/OndraM/oauth2-example Twitter: @OndraM