AWS Cognito: Benutzerverwaltung und Authentifizierung

Avatar
Lisa Ernst · 18.10.2025 · Technik · 5 min

AWS Cognito bietet eine zuverlässige und skalierbare Lösung zur Benutzerverwaltung und Authentifizierung für Web- und Mobilanwendungen, ohne ein eigenes Identitäts-Backend betreiben zu müssen. Der Dienst integriert externe Identitätsanbieter und stellt standardkonforme Tokens für APIs bereit. Zudem ermöglicht er den Tausch von Identitätstokens gegen temporäre AWS-Credentials für den direkten Zugriff auf AWS-Dienste wie S3 und DynamoDB.

Grundlagen AWS Cognito

AWS Cognito besteht aus zwei Kernkomponenten: User Pools und Identity Pools.

User Pools sind ein Benutzerverzeichnis und ein OpenID-Connect-kompatibler Identity Provider. Sie authentifizieren Benutzer, geben ID-, Access- und Refresh-Tokens aus und integrieren soziale oder Unternehmens-IdPs über OIDC oder SAML.

Identity Pools (auch Federated Identities genannt) liefern auf Basis dieser Identitäten kurzlebige AWS-Credentials. Dies ist auch für Gäste möglich, die noch nicht angemeldet sind.

Die verwaltete Anmeldeseite, früher als „Hosted UI“ bekannt und heute als „Managed Login“ bezeichnet, stellt standardkonforme OAuth-Endpunkte bereit, darunter /oauth2/authorize, /oauth2/token, /logout sowie die OIDC Discovery- und JWKS-Ressourcen. Für Single Page Applications (SPAs) ist der Authorization-Code-Flow mit PKCE von zentraler Bedeutung, da er verhindert, dass abgefangene Codes missbraucht werden können.

Die ausgegebenen Tokens sind JSON Web Tokens (JWTs). Access-Tokens transportieren Scopes und Gruppen für die API-Autorisierung, während ID-Tokens Profilangaben enthalten. Signaturen dieser Tokens können gegen die JWKS-URL des jeweiligen Pools verifiziert werden.

Aktueller Stand & Funktionen

Die Tokenlaufzeiten lassen sich pro App-Client präzise einstellen. Access- und ID-Tokens können zwischen 5 Minuten und 1 Tag konfiguriert werden. Refresh-Tokens haben standardmäßig eine Gültigkeit von 30 Tagen, die jedoch zwischen 60 Minuten und 10 Jahren angepasst werden kann.

Die Managed-Login-Seiten unterstützen PKCE standardmäßig. Der Logout-Endpunkt beendet die Browser-Session und leitet auf konfigurierte Abmelde-URLs um.

Übersicht der Kernfunktionen von Amazon Cognito.

Quelle: aws.amazon.com

Übersicht der Kernfunktionen von Amazon Cognito.

Für einen individuellen Markenauftritt und die Nutzung eigener Domains kann eine Custom Domain mit einem ACM-Zertifikat eingerichtet werden (Zertifikat in us-east-1 erforderlich). Danach erfolgt der Login über die eigene Subdomain.

APIs können entweder direkt am API Gateway mit einem JWT-Authorizer geschützt werden, der Cognito als OIDC-Issuer akzeptiert, oder durch einen eigenen (Lambda-)Authorizer.

Die adaptive/risikobasierte Anmeldung („Threat Protection“) kann verdächtige Login-Versuche einstufen, Multi-Faktor-Authentifizierung (MFA) erzwingen oder Zugriffe blockieren.

Für Multi-Tenant-Anwendungen dokumentiert AWS verschiedene Muster, von einem Single-Pool-Ansatz bis hin zu einem Pool pro Tenant, inklusive Isolation über Gruppen/Rollen und Scopes.

Die Integration in Next.js-Anwendungen wird durch den Cognito-Provider von NextAuth vereinfacht. Sessions werden über JWTs/Cookies verwaltet, und Edge-Middleware schützt Routen.

Hintergründe & Motivation

Moderne Anwendungen benötigen eine zentrale Identitätsschicht, die Industriestandards wie OIDC/OAuth2/SAML unterstützt, Risiken durch MFA und adaptive Authentifizierung adressiert und gleichzeitig die Integration eigener Identitätsanbieter ermöglicht. Für SPAs ist PKCE unverzichtbar, da Client-Secrets im Browser nicht sicher gespeichert werden können; Cognito implementiert PKCE vollständig.

Auf der API-Seite ist der direkte JWT-Abgleich am API Gateway attraktiv. Er bietet geringe Latenz, eine klare Trennung von Authentifizierung (AuthN) und Autorisierung (AuthZ) und vermeidet einen zusätzlichen Roundtrip zum User-Store.

Compliance und Datenresidenz sind weitere wichtige Aspekte. User Pools speichern Profildaten regional. Optionale Features wie Pinpoint-Analytics können Daten in andere Regionen senden, was für EU/CH-Teams relevant ist und besondere Beachtung erfordert.

Quelle: YouTube

Dieses Video zeigt die SAML-Föderation mit Cognito, was hilfreich ist, um IdP-basierte Szenarien und Single-Logout visuell nachzuvollziehen.

Praktische Anwendung & Empfehlungen

Wer eine SPA oder Next.js-App entwickelt, sollte den Authorization Code Flow mit PKCE wählen. Tokens sollten serverseitig in httpOnly-Cookies gespeichert oder die Session-Mechanik des Frameworks genutzt werden. Die Verifikation von JWTs sollte stets gegen den JWKS-Endpunkt des Pools erfolgen.

Typischer Authentifizierungsfluss mit AWS Cognito.

Quelle: economize.cloud

Typischer Authentifizierungsfluss mit AWS Cognito.

APIs sollten Scopes prüfen und einen JWT-Authorizer einsetzen, um Authentifizierung und Autorisierung zu entkoppeln und Latenzen gering zu halten.

Für Multi-Tenant-Anwendungen empfiehlt es sich, mit einem Single-Pool-Ansatz zu beginnen, ergänzt durch Mandanten-Attribute oder Scopes. Bei strengen Isolationsanforderungen kann ein Pool pro Tenant in Betracht gezogen werden.

Im Bereich Operations ist es ratsam, CloudTrail und CloudWatch-Metriken zu aktivieren, Quoten und Login-Muster zu überwachen und optional den Threat Protection zu nutzen.

Hinsichtlich Compliance müssen regionale Datenflüsse (z. B. durch Analytics) geprüft und für EU/CH-Teams dokumentiert werden, insbesondere unter Berücksichtigung der regionalen Datenüberlegungen.

Quelle: YouTube

Dieser Walkthrough hilft, den Authorization-Code-Flow mit PKCE Ende-zu-Ende zu verstehen.

Offene Fragen & Herausforderungen

Die Gestaltung von Token-TTL und Rotation muss sorgfältig abgewogen werden, um ein Gleichgewicht zwischen UX und Sicherheitsniveau zu finden, ohne Anwendungen zu ständigem Refresh zu zwingen. AWS empfiehlt, Tokens nur für etwa 75 Prozent ihrer Lebenszeit zu nutzen und erst dann zu erneuern.

Es stellt sich die Frage, wie weit die Mandantenisolation per Gruppen/Scopes ausreicht, bevor ein Pool-Split organisatorisch und kostenseitig notwendig wird. AWS skizziert beide Wege, aber belastbare Schwellen sind anwendungsabhängig.

Integration von Cognito mit externen Identitätsanbietern und AWS-Diensten.

Quelle: aws.amazon.com

Integration von Cognito mit externen Identitätsanbietern und AWS-Diensten.

Welche Daten dürfen gemäß den jeweiligen Compliance-Regeln die Region verlassen, wenn optionale Features wie Pinpoint aktiv sind? Hier sind die regionalen Hinweise zu prüfen und Opt-ins zu dokumentieren.

Die Konsistenz des Single Logout über alle angebundenen IdPs hinweg ist eine weitere Herausforderung. Für SAML gibt es SLO-Unterstützung, doch die Implementierungsdetails variieren je nach IdP.

Fazit: AWS Cognito bietet einen soliden, standardbasierten Authentifizierungs-Kern mit klaren Erweiterungspunkten: Managed Login mit PKCE, saubere JWT-Verifikation und optionale Föderation zu sozialen oder Unternehmens-IdPs. In der Praxis ist es entscheidend, den passenden Flow für die Anwendung zu wählen, Tokens bewusst zu befristen und die API-Schicht strikt über Scopes zu autorisieren. Bei der Planung von Multi-Tenant-Architekturen sollten frühzeitig Entscheidungen über Isolationsgrenzen und Betriebsmetriken getroffen werden. Die Bausteine sind vorhanden, die Designentscheidung liegt beim Anwender.

Teilen Sie doch unseren Beitrag!