Successfully reported this slideshow.
Your SlideShare is downloading. ×

OAuth2 på Svenska

Ad

Kort om RFC6749
OAuth2
Emil Tullstedt
<emil@46elks.com>
@sakjur
Uppsala Tech Meetup
2015-09-22

Ad

Problem
1 Applikationer som vill komma ˚at resurser som tillh¨or en
anv¨andare p˚a en extern server beh¨over autentisera s...

Ad

OAuth2 f¨or anv¨andaren

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Upcoming SlideShare
OAuth2 and IdentityServer3
OAuth2 and IdentityServer3
Loading in …3
×

Check these out next

1 of 18 Ad
1 of 18 Ad
Advertisement

More Related Content

Advertisement

OAuth2 på Svenska

  1. 1. Kort om RFC6749 OAuth2 Emil Tullstedt <emil@46elks.com> @sakjur Uppsala Tech Meetup 2015-09-22
  2. 2. Problem 1 Applikationer som vill komma ˚at resurser som tillh¨or en anv¨andare p˚a en extern server beh¨over autentisera sig med anv¨andarens inloggningsuppgifter1 2 Det ¨ar sv˚art f¨or anv¨andaren att begr¨ansa vilka resurser en viss applikation har tillg˚ang till 3 Anv¨andaren m˚aste byta l¨osenord f¨or att bryta en applikations tillg˚ang till resurserna 1 L¨osenord i klartext <3
  3. 3. OAuth2 f¨or anv¨andaren
  4. 4. F¨or webbutvecklare, tl;dr; OAuth2? 1 Anv¨anda annan leverant¨or f¨or att logga in → Slippa l¨osenord 2 APIer! Google, GitHub, Facebook, et.c. 3 OAuth2 ≈ OpenID Connect
  5. 5. Nyckelbegrepp Resurs¨agare I normalfallet, anv¨andaren Resursserver Server med resurs¨agarens resurser Klient Applikation som f¨ors¨oker n˚a resurser Auktoriseringsserver Server f¨or att autentisera klienten Auktoriseringsf¨orfr˚agan Klienten ber resurs¨agaren om en grant Auktoriseringsgrant Klienten byter ut mot en Accesstoken Accesstoken Nyckeln f¨or att komma ˚at resurser
  6. 6. H¨amta en accesstoken Klient Auktoriseringsserver Resurs¨agare Resursserver A B A B B C C D
  7. 7. H¨amta en accesstoken – Anrop Klienten instruerar resurs¨agaren att med en user-agent2 g˚a in p˚a en specifik auktoriseringssida. User-Agent → Auktoriseringsserver 1 GET /authorize?response_type=code&client_id=s6BhdRkqt3& state=xyz&redirect_uri=https%3A%2F%2Fclient%2Eexample %2Ecom%2Fcb HTTP/1.1 2 Host: server.example.com 2 User-Agent ¨ar motsvarande en webbl¨asare
  8. 8. H¨amta en accesstoken – Anrop Auktoriseringsserver → User-Agent 1 HTTP/1.1 302 Found 2 Location: https://client.example.com/cb?code= SplxlOBeZQQYbYS6WxSbIA&state=xyz User-Agent → Klient GET /cb?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz
  9. 9. H¨amta en accesstoken – Anrop Klient → Auktoriseringsserver 1 POST /token HTTP/1.1 2 Host: server.example.com 3 Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW 4 Content-Type: application/x-www-form-urlencoded 5 6 grant_type=authorization_code&code= SplxlOBeZQQYbYS6WxSbIA&redirect_uri=https%3A%2F%2 Fclient%2Eexample%2Ecom%2Fcb
  10. 10. Basic Authorization i OAuth2? Klienten auktoriserar sig mot auktoriseringsservern med hj¨alp av basic auth Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
  11. 11. H¨amta en accesstoken – Anrop Auktoriseringsserver → Klient 1 HTTP/1.1 200 OK 2 Content-Type: application/json;charset=UTF-8 3 Cache-Control: no-store 4 Pragma: no-cache 5 6 { 7 "access_token":"2YotnFZFEjr1zCsicMWpAA", 8 "token_type":"example", 9 "expires_in":3600, 10 "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA", 11 "example_parameter":"example_value" 12 }
  12. 12. H¨amta en accesstoken – i praktiken Bibliotek! o/
  13. 13. Komma ˚at en resurs med en token 1 Beror p˚a tokentyp 2 Bearer token-formatet beskrivs av RFC6750 3 RFC6749 n¨amner ¨aven OAuth-HTTP-MAC3 1 GET /resource/1 HTTP/1.1 2 Host: example.com 3 Authorization: Bearer mF_9.B5f-4.1JqM 3 Fortfarande i utkastsstadiet
  14. 14. Hur l¨ange lever en Accesstoken 1 Livsl¨angden p˚a en accesstoken anges eventuellt av expires in-variabeln fr˚an auktoriseringsservern 2 Ny accesstoken kan h¨amtas med en refreshtoken 3 Resurs¨agaren kan dra in en klients accesser 1 { 2 · · · 3 "expires_in":3600, 4 "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA", 5 · · · 6 }
  15. 15. R¨attigheter 1 Klienten kan inkludera en variabel scope i sin auktoriseringsf¨orfr˚aga 2 scope ¨ar bara en mellanslagsseparerad lista 3 Auktoriseringsservern ¨ar fri att tolka scope hur den vill
  16. 16. tl;dr; 1 OAuth2 hj¨alper dina anv¨andare att logga in och dig att anv¨anda deras externa resurser 2 RFC6749 f˚ar OAuth2 att verka jobbigare ¨an det ¨ar i verkligheten
  17. 17. Fr˚agor? emil@46elks.com @sakjur
  18. 18. L¨ankar 1 RFC6749 OAuth2 https://tools.ietf.org/html/rfc6749 2 RFC6750 Bearer Token https://tools.ietf.org/html/rfc6750 3 OAuth-HTTP-MAC Draft 05 https://tools.ietf.org/html/ draft-ietf-oauth-v2-http-mac-05 4 Googles OAuth 2.0 dokumentation https://developers.google.com/identity/ protocols/OAuth2 5 requests-oauthlib (Python-bibliotek f¨or att leka med OAuth) https://requests-oauthlib.readthedocs.org/

×