Eindgebruikers verifiëren met Amazon Cognito

Applicaties implementeren op AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Je eigen login bouwen?

  • Een nieuwe app heeft volledige aanmelding en inloggen nodig
  • Het team bouwt auth vanaf nul
  • Cognito doet dit al veilig

Beheerde Amazon Cognito-authenticatie kiezen in plaats van een eigen login bouwen

Applicaties implementeren op AWS

User pools vs identity pools

Cognito User Pool als gebruikersdirectory die links tokens uitgeeft, Identity Pool middenin die een gevalideerde token omruilt voor tijdelijke AWS-referenties, rechts AWS-services

  • User pool: een beheerde directory van eindgebruikers
  • Regelt aanmelding, inloggen en geeft tokens uit
  • Identity pool: ruilt een login in voor AWS-gegevens
  • Gebruik samen: eerst authenticeren, dan AWS-toegang autoriseren
Applicaties implementeren op AWS

De drie Cognito-tokens

  • ID-token: wie de gebruiker is (identiteitsclaims)
  • Access token: wat de gebruiker mag aanroepen
  • Refresh token: nieuwe tokens zonder opnieuw in te loggen
  • Alle drie zijn JWT's die je kunt decoderen en valideren

Drie Cognito JWT-tokens naast elkaar: ID-token met identiteitsclaims, access token met API-rechten, refresh token gelabeld als long-lived voor stille vernieuwing

Applicaties implementeren op AWS

Gefedereerde identiteit

  • Federation: inloggen met een externe identiteitsprovider
  • Sociaal: Google, Facebook, Apple
  • Enterprise: SAML- en OIDC-providers
  • Cognito bemiddelt het vertrouwen en geeft eigen tokens uit

Cognito-federatie: gebruiker kiest een sociale provider (Google, Facebook) of enterprise SAML/OIDC-provider, Cognito valideert de externe login en geeft eigen standaardtokens uit

Applicaties implementeren op AWS

Cognito als API Gateway-authorizer

API Gateway Cognito-authorizer: client stuurt Authorization-header met access token, gateway valideert tegen user pool vóór Lambda draait, ongeldige tokens geweigerd met 401

  • API Gateway kan een Cognito-authorizer gebruiken
  • De client stuurt zijn token in de Authorization-header
  • API Gateway valideert de token vóór de backend draait
  • Ongeldige of verlopen tokens worden aan de rand geweigerd
Applicaties implementeren op AWS

Een typische flow van inloggen naar API-call

  • Gebruiker logt in bij de user pool
  • Krijgt ID-, access- en refresh-tokens
  • Client roept API Gateway aan met de access token
  • Cognito-authorizer valideert, daarna draait de backend

Sign-in naar API-call flow: gebruiker logt in bij user pool en ontvangt tokens, client stuurt access token naar API Gateway, Cognito-authorizer valideert deze, backend Lambda voert uit

Applicaties implementeren op AWS

Veelvoorkomende Cognito-fouten

  • De ID-token sturen waar een access token hoort
  • User pools verwarren met identity pools
  • Proberen AWS-toegang te autoriseren met alleen een user pool
  • Tokens onveilig opslaan op de client

Veelvoorkomende Cognito-fouten: ID-token naar een API sturen i.p.v. access token, user pool en identity pool verwarren, en tokens onveilig opslaan op de client

Applicaties implementeren op AWS

Laten we oefenen!

Applicaties implementeren op AWS

Preparing Video For Download...