Autentisera slutanvändare med Amazon Cognito

Driftsättning av applikationer på AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Bygga egen inloggning?

  • En ny app behöver fullständig registrering och inloggning
  • Teamet börjar bygga autentisering från grunden
  • Cognito hanterar detta redan på ett säkert sätt

Att välja hanterad Amazon Cognito-autentisering istället för att bygga en egen inloggning

Driftsättning av applikationer på AWS

User pools kontra identity pools

Cognito User Pool som användarkatalog och utfärdare av tokens till vänster, Identity Pool som växlar en validerad token mot temporära AWS-uppgifter i mitten, AWS-tjänster till höger

  • User pool: en hanterad katalog över slutanvändare
  • Hanterar registrering, inloggning och utfärdar tokens
  • Identity pool: växlar en inloggning mot AWS-uppgifter
  • Använd dem tillsammans: autentisera och auktorisera AWS-åtkomst
Driftsättning av applikationer på AWS

De tre Cognito-tokens

  • ID-token: vem användaren är (identitetsinformation)
  • Åtkomsttoken: vad användaren får anropa
  • Uppdateringstoken: hämta nya tokens utan ny inloggning
  • Alla tre är JWT:er som kan avkodas och valideras

Tre Cognito JWT-tokens sida vid sida: ID-token med identitetsinformation, åtkomsttoken med API-behörighetsomfång, uppdateringstoken märkt som långlivad för tyst förnyelse

Driftsättning av applikationer på AWS

Federerad identitet

  • Federation: logga in med en extern identitetsleverantör
  • Sociala: Google, Facebook, Apple
  • Företag: SAML- och OIDC-leverantörer
  • Cognito hanterar förtroendet och utfärdar egna tokens

Cognito-federation: användaren väljer en social leverantör (Google, Facebook) eller en SAML/OIDC-leverantör för företag, Cognito validerar den externa inloggningen och utfärdar egna standardtokens

Driftsättning av applikationer på AWS

Cognito som API Gateway-auktoriserare

API Gateway Cognito-auktoriserare: klienten skickar Authorization-huvud med åtkomsttoken, gatewayen validerar mot user pool innan Lambda körs, ogiltiga tokens avvisas med 401

  • API Gateway kan använda en Cognito-auktoriserare
  • Klienten skickar sin token i Authorization-huvudet
  • API Gateway validerar token innan backend körs
  • Ogiltiga eller utgångna tokens avvisas vid kanten
Driftsättning av applikationer på AWS

Ett typiskt flöde från inloggning till API-anrop

  • Användaren loggar in i user pool
  • Tar emot ID-, åtkomst- och uppdateringstokens
  • Klienten anropar API Gateway med åtkomsttoken
  • Cognito-auktoriseraren validerar, sedan körs backend

Flöde från inloggning till API-anrop: användaren loggar in i user pool och tar emot tokens, klienten skickar åtkomsttoken till API Gateway, Cognito-auktoriseraren validerar den, backend Lambda körs

Driftsättning av applikationer på AWS

Vanliga Cognito-misstag

  • Skicka ID-token där en åtkomsttoken hör hemma
  • Blanda ihop user pools med identity pools
  • Försöka auktorisera AWS-åtkomst med enbart user pool
  • Lagra tokens osäkert på klienten

Vanliga Cognito-misstag: skicka ID-token till ett API istället för åtkomsttoken, blanda ihop user pool och identity pool, samt lagra tokens osäkert på klienten

Driftsättning av applikationer på AWS

Nu kör vi en övning!

Driftsättning av applikationer på AWS

Preparing Video For Download...