Autentizace uživatelů pomocí Amazon Cognito

Nasazování aplikací na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Budovat vlastní přihlášení?

  • Nová aplikace potřebuje registraci a přihlášení
  • Tým začíná budovat autentizaci od nuly
  • Cognito to už dělá bezpečně

Výběr spravované autentizace Amazon Cognito místo vlastního řešení přihlášení

Nasazování aplikací na AWS

User pool vs. identity pool

User Pool jako adresář uživatelů vydávající tokeny vlevo, Identity Pool směňující ověřený token za dočasné přihlašovací údaje AWS uprostřed, služby AWS vpravo

  • User pool: spravovaný adresář koncových uživatelů
  • Zajišťuje registraci, přihlášení a vydává tokeny
  • Identity pool: vymění přihlášení za přihlašovací údaje AWS
  • Kombinuj je: nejprve autentizace, pak přístup k AWS
Nasazování aplikací na AWS

Tři Cognito tokeny

  • ID token: kdo uživatel je (identitní claims)
  • Access token: co smí uživatel volat
  • Refresh token: získá nové tokeny bez opětovného přihlášení
  • Všechny tři jsou JWT — lze je dekódovat a ověřit

Tři Cognito JWT tokeny vedle sebe: ID token s identitními claims, access token s rozsahy oprávnění API, refresh token označený jako dlouhodobý pro tiché obnovení

Nasazování aplikací na AWS

Federovaná identita

  • Federace: přihlášení přes externího poskytovatele identity
  • Sociální sítě: Google, Facebook, Apple
  • Podnikoví: SAML a OIDC poskytovatelé
  • Cognito zprostředkuje důvěru a vydá vlastní tokeny

Federace Cognito: uživatel zvolí sociálního poskytovatele (Google, Facebook) nebo podnikového SAML/OIDC poskytovatele, Cognito ověří externí přihlášení a vydá vlastní standardní tokeny

Nasazování aplikací na AWS

Cognito jako autorizátor API Gateway

Cognito autorizátor API Gateway: klient odešle Authorization header s access tokenem, brána ověří token vůči user poolu před spuštěním Lambdy, neplatné tokeny jsou odmítnuty s kódem 401

  • API Gateway může použít Cognito autorizátor
  • Klient posílá token v Authorization headeru
  • API Gateway ověří token ještě před spuštěním backendu
  • Neplatné nebo expirované tokeny jsou odmítnuty na hraně
Nasazování aplikací na AWS

Typický průběh od přihlášení k volání API

  • Uživatel se přihlásí do user poolu
  • Obdrží ID, access a refresh tokeny
  • Klient zavolá API Gateway s access tokenem
  • Cognito autorizátor ověří token a backend se spustí

Průběh od přihlášení k volání API: uživatel se přihlásí do user poolu a obdrží tokeny, klient odešle access token do API Gateway, Cognito autorizátor ho ověří, backend Lambda se spustí

Nasazování aplikací na AWS

Časté chyby v Cognito

  • Posílání ID tokenu tam, kde patří access token
  • Záměna user poolu a identity poolu
  • Pokus autorizovat přístup k AWS pouze přes user pool
  • Nezabezpečené ukládání tokenů na klientovi

Časté chyby v Cognito: odeslání ID tokenu do API místo access tokenu, záměna user poolu a identity poolu, nezabezpečené ukládání tokenů na klientovi

Nasazování aplikací na AWS

Pojďme cvičit!

Nasazování aplikací na AWS

Preparing Video For Download...