OAuth 2.0#ZFMeetup, 9. únor 2012Ondřej Machuldaondrej.machulda@gmail.comhttp://o.vlastovka.eu   @OndraM
OAuth – WTF●    Open Authorization●   „Otevřený standard pro autorizaci“●    Autorizace vs. autentizace       –   autentiz...
OAuth 2.0 – WHO                  3
OAuth 2.0 – WHO                  4
OAuth 2.0 - možnosti●    Client side („Implicit grant“)    ●        Zjednodušené, pro client-only aplikace (AJAX)●    Serv...
OAuth 2.0 – jak na to●    Registrace „OAuth consumera“ u providera    ●   callback url    ●   client_id, client_secret    ...
OAuth 2.0 – jak na to●    Registrace „OAuth consumera“ u providera    ●   callback url    ●   client_id, client_secret    ...
OAuth 2.0 – jak na to●    Registrace „OAuth consumera“ u providera    ●   callback url    ●   client_id, client_secret    ...
OAuth 2.0 – jak na to●    Registrace „OAuth consumera“ u providera    ●   callback url    ●   client_id, client_secret    ...
OAuth 2.0 – jak to funguje                             10
OAuth 2.0 – jak to funguje                             11
1. Žádost o autorizaci na autorizačním URL●    https://www.facebook.com/dialog/oauth?    ●   response_type = code    ●    ...
2. Autorizační stránka●    Nejprve autentizace uživatele – pokud není již    přihlášen●    Pak autorizace – povolí přístup...
2. Autorizační stránka – příklad                                   14
2. Autorizační stránka – příklad                                   15
OAuth 2.0 – jak to funguje                             16
4. Přesměrování na redirect_uri●    Při chybě (uživatel odmítne aj.)    ●        http://redirect.uri?error=REASON●    Při ...
OAuth 2.0 – jak to funguje                             18
5. Access token request●    Provede naše aplikace asynchronně●    HTTP POST*●   https://graph.facebook.com/oauth/access_to...
6. Access token, woot!●    Když vše souhlasí, vrátí nám provider token●    Bordel ve formátech: query string, JSON...●   {...
7. Zobrazení potvrzení●    Zobrazíme uživateli, že je přihlášen●    S tokenem (= přístupový klíč) už můžeme dělat    požad...
Example app    Uka to!      github.com/OndraM/oauth2-example                                         22
Example app              23
Real-world app    Wanna more!                  24
Real-world app                 25
Děkuji za pozornost                    Prezentace ke stažení:               www.slideshare.net/OndraM                     ...
Upcoming SlideShare
Loading in …5
×

OAuth 2.0 a Zend Framework

3,088 views

Published on

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
3,088
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

OAuth 2.0 a Zend Framework

  1. 1. OAuth 2.0#ZFMeetup, 9. únor 2012Ondřej Machuldaondrej.machulda@gmail.comhttp://o.vlastovka.eu @OndraM
  2. 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. 3. OAuth 2.0 – WHO 3
  4. 4. OAuth 2.0 – WHO 4
  5. 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. 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. 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. 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. 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. 10. OAuth 2.0 – jak to funguje 10
  11. 11. OAuth 2.0 – jak to funguje 11
  12. 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. 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. 14. 2. Autorizační stránka – příklad 14
  15. 15. 2. Autorizační stránka – příklad 15
  16. 16. OAuth 2.0 – jak to funguje 16
  17. 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. 18. OAuth 2.0 – jak to funguje 18
  19. 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. 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. 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. 22. Example app Uka to! github.com/OndraM/oauth2-example 22
  23. 23. Example app 23
  24. 24. Real-world app Wanna more! 24
  25. 25. Real-world app 25
  26. 26. Děkuji za pozornost Prezentace ke stažení: www.slideshare.net/OndraM Zdrojáky aplikace: github.com/OndraM/oauth2-example Twitter: @OndraM

×