+ All Categories
Home > Technology > OAuth 2.0 a Zend Framework

OAuth 2.0 a Zend Framework

Date post: 27-May-2015
Category:
Upload: ondrej-machulda
View: 2,548 times
Download: 3 times
Share this document with a friend
Description:
OAuth 2.0 - co to je, jak funguje, implicit a authorization code grant, sekvenční diagram, ukázka v Zend Framework.
26
OAuth 2.0 #ZFMeetup, 9. únor 2012 Ondřej Machulda [email protected] http://o.vlastovka.eu @OndraM
Transcript
Page 1: OAuth 2.0 a Zend Framework

OAuth 2.0

#ZFMeetup, 9. únor 2012Ondřej [email protected]://o.vlastovka.eu @OndraM

Page 2: OAuth 2.0 a Zend Framework

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

Page 3: OAuth 2.0 a Zend Framework

3

OAuth 2.0 – WHO

Page 4: OAuth 2.0 a Zend Framework

4

OAuth 2.0 – WHO

Page 5: OAuth 2.0 a Zend Framework

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ů

Page 6: OAuth 2.0 a Zend Framework

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

Page 7: OAuth 2.0 a Zend Framework

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

Page 8: OAuth 2.0 a Zend Framework

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

Page 9: OAuth 2.0 a Zend Framework

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

Page 10: OAuth 2.0 a Zend Framework

10

OAuth 2.0 – jak to funguje

Page 11: OAuth 2.0 a Zend Framework

11

OAuth 2.0 – jak to funguje

Page 12: OAuth 2.0 a Zend Framework

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

Page 13: OAuth 2.0 a Zend Framework

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)

Page 14: OAuth 2.0 a Zend Framework

14

2. Autorizační stránka – příklad

Page 15: OAuth 2.0 a Zend Framework

15

2. Autorizační stránka – příklad

Page 16: OAuth 2.0 a Zend Framework

16

OAuth 2.0 – jak to funguje

Page 17: OAuth 2.0 a Zend Framework

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

Page 18: OAuth 2.0 a Zend Framework

18

OAuth 2.0 – jak to funguje

Page 19: OAuth 2.0 a Zend Framework

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

Page 20: OAuth 2.0 a Zend Framework

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

Page 21: OAuth 2.0 a Zend Framework

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ší...)

Page 22: OAuth 2.0 a Zend Framework

22

Example app

Uka to!github.com/OndraM/oauth2-example

Page 23: OAuth 2.0 a Zend Framework

23

Example app

Page 24: OAuth 2.0 a Zend Framework

24

Real-world app

Wanna more!

Page 25: OAuth 2.0 a Zend Framework

25

Real-world app

Page 26: OAuth 2.0 a Zend Framework

Děkuji za pozornost

Prezentace ke stažení:www.slideshare.net/OndraM

Zdrojáky aplikace:github.com/OndraM/oauth2-example

Twitter:@OndraM


Recommended