Používání API 4

82. hodina MVOP WBF

Matěj Cajthaml — SSPŠ

©

Opakování 1

Co je to kurzorová heatmap?
Co je to TypeScript?
Jak vytvoříme element pomocí JS?
K čemu slouží metoda OPTIONS?
Jak se merge conflicty řeší?

Opakování 2

Jak přidáme hodnotu do pole v JS?
Jak předáváme data mezi rodičem a potomkem směrem z potomka ve Vue? A naopak?
Jak se vytvoří cyklus uvnitř šablony ve Vue?
Jaké znáte CSS jednotky?
Co je to UX a UI?

Opakování 3

Co je to autorizace a autentizace?
Co je to JSON web token?
Jaké části JWT obsahuje?
Co je to BASE64?
Jaké jsou výhody a nevýhody jwt?

OAuth 2.0

  • autorizační framework
  • definuje standardy jak probíhá přihlašování
  • především komunikace třetích stran s API
  • přístup bez nutnosti uživatele
  • založen na přístupových tokenech

Proč vůbec něco takového vzniklo?

Role v OAuth

  • resource owner = přiřazení práv k prostředkům
  • resource server = příjímání požadavků s tokenem
  • client = aplikace dělající požadavky
  • authorization server = autorita vydávající tokeny
    +--------+                               +---------------+
    |        |--(A)- Autorizační požadavek ->|    Majitel    |
    |        |                               |   prostředku  |
    |        |<-(B)- Autorizační povolenka --|               |
    |        |                               +---------------+
    |        |
    |        |                               +---------------+
    |        |--(C)- Autorizační povolenka ->|  Autorizační  |
    | Klient |                               |     server    |
    |        |<-(D)--- Přístupový token -----|               |
    |        |                               +---------------+
    |        |
    |        |                               +---------------+
    |        |--(E)--- Přístupový token ---->|     Server    |
    |        |                               |   prostředků  |
    |        |<-(F)------- Prostředek -------|               |
    +--------+                               +---------------+
                    

Autorizační povolenka

  • = authorization grant
  • různé způsoby
  • Authorization Code
  • Implicit
  • Client credentials grant
  • Resource Owner Password Credentials

Autorizační kód

  1. klient přesměruje uživatele na autorizační stránku serveru s parametry
  2. po schválení bude uživatel přesměrován zpátky do aplikace s autorizačním kódem
  3. aplikace si pomocí získaného autorizačního kódu získá přístupový token na autorizační server

Jaké parametry půjdou s požadavkem 1.?

Implictní

  • velmi podobný Autorizačnímu kódu
  • vynechává se poslední krok (č. 3)
  • přístupový token se získává hned v kroku č. 2

Refresh tokens

  • nepovinný obnovovací token
  • díky němu lze po expiraci přístupového tokenu nový
  • autorizační server

Kolik se může využít refresh token? Kolikrát by to bylo bezpečné?

Access tokens

  • = přístupový token
  • náhodný textový popis
  • zašifrovaná zpráva (podepisuje aut. server)
  • JWT

Registrace klienta

  • pro přístup třetích stran do přihlašování je nutné zaregistrovat klienta
  • informace o aplikaci
  • typ klienta
  • zpětné odkazy

Můžeme pomocí OAuth2 udělat pouze webovou aplikaci (bez serveru, např. ve Vue), která bude komunikovat s Google API po přihlášení uživatelem?

Více o OAuth2

https://oauth.net/2/

IETF

Jaké jsou výhody a nevýhody OAuth2?

Děkuji za pozornost!

  • matej.cajthaml@ssps.cz
  • https://ssps.cajthaml.eu/