Endnutzer mit Amazon Cognito authentifizieren

Bereitstellen von Anwendungen auf AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Eigenes Login bauen?

  • Neue App braucht komplettes Sign-up und Sign-in
  • Team baut Auth von Grund auf
  • Cognito kann das bereits sicher

Verwaltete Amazon-Cognito-Authentifizierung statt eigenem Login wählen

Bereitstellen von Anwendungen auf AWS

User Pools vs. Identity Pools

Cognito User Pool als Benutzerverzeichnis, das links Tokens ausstellt; Identity Pool tauscht in der Mitte ein validiertes Token gegen temporäre AWS-Anmeldedaten; rechts AWS-Services

  • User Pool: verwaltetes Verzeichnis für Endnutzer
  • Kümmert sich um Sign-up, Sign-in und stellt Tokens aus
  • Identity Pool: tauscht ein Login gegen AWS-Anmeldedaten
  • Zusammen nutzen: erst authentifizieren, dann AWS-Zugriff autorisieren
Bereitstellen von Anwendungen auf AWS

Die drei Cognito-Tokens

  • ID-Token: wer der Nutzer ist (Identitätsangaben)
  • Access Token: welche Aufrufe der Nutzer machen darf
  • Refresh Token: neue Tokens ohne erneutes Login holen
  • Alle drei sind JWTs, die du decodieren und validieren kannst

Drei Cognito-JWT-Tokens nebeneinander: ID-Token mit Identitätsangaben, Access Token mit API-Berechtigungen, Refresh Token als langlebig für stilles Erneuern gekennzeichnet

Bereitstellen von Anwendungen auf AWS

Föderierte Identität

  • Federation: Anmeldung mit externem Identity Provider
  • Social: Google, Facebook, Apple
  • Enterprise: SAML- und OIDC-Provider
  • Cognito vermittelt das Vertrauen und stellt eigene Tokens aus

Cognito-Föderation: Nutzer wählt sozialen Anbieter (Google, Facebook) oder Enterprise-SAML/OIDC-Provider; Cognito validiert den externen Login und stellt eigene Standard-Tokens aus

Bereitstellen von Anwendungen auf AWS

Cognito als API-Gateway-Authorizer

API Gateway Cognito Authorizer: Client sendet Authorization-Header mit Access Token; Gateway validiert gegen den User Pool, bevor Lambda läuft; ungültige Tokens führen zu 401

  • API Gateway kann einen Cognito Authorizer nutzen
  • Der Client sendet sein Token im Authorization-Header
  • API Gateway validiert das Token, bevor das Backend läuft
  • Ungültige oder abgelaufene Tokens werden am Rand verworfen
Bereitstellen von Anwendungen auf AWS

Typischer Flow: Sign-in → API-Call

  • Nutzer meldet sich am User Pool an
  • Erhält ID-, Access- und Refresh-Tokens
  • Client ruft API Gateway mit dem Access Token auf
  • Cognito Authorizer validiert, dann läuft das Backend

Ablauf von Anmeldung bis API-Aufruf: Nutzer meldet sich am User Pool an und erhält Tokens; Client sendet Access Token an API Gateway; Cognito Authorizer validiert; Backend-Lambda läuft

Bereitstellen von Anwendungen auf AWS

Häufige Cognito-Fehler

  • ID-Token senden, wo ein Access Token hingehört
  • User Pools mit Identity Pools verwechseln
  • AWS-Zugriff nur mit einem User Pool autorisieren wollen
  • Tokens unsicher auf dem Client speichern

Häufige Cognito-Fehler: ID-Token statt Access Token an eine API senden, User Pool und Identity Pool verwechseln und Tokens unsicher auf dem Client speichern

Bereitstellen von Anwendungen auf AWS

Lass uns üben!

Bereitstellen von Anwendungen auf AWS

Preparing Video For Download...