AWS Cognito für ein Startup: Ich würde es nicht nochmal tun
I Used AWS Cognito for a Startup. I Wouldn't Do It Again

Ein Entwickler berichtet von seinen Erfahrungen mit AWS Cognito als Authentifizierungslösung für ein Startup. Er kritisiert die unübersichtliche Dokumentation, die viele verschiedene Zielgruppen anspricht, die Breaking Changes in Amplify v6, die eine komplette Neuimplementierung erzwangen, sowie die mangelnden Anpassungsmöglichkeiten der gehosteten UI. Besonders frustrierend war die Unfähigkeit, Attribute nachträglich zu ändern, was zu einem aufwändigen Migrationsprozess führte. Sein Fazit: Die Integration in das AWS-Ökosystem und der kostenlose Einstieg rechtfertigen nicht den hohen Entwicklungsaufwand.
Das ist kein Upgrade. Das ist eine Geiselnahme.
- wilkystyle
> Das Lesen der Cognito-Dokumentation fühlt sich an, als hätte jemand drei separate Handbücher genommen, sie in einen Mixer geworfen und dann ein paar veraltete Stack-Overflow-Antworten für den Geschmack darüber gestreut.
Das ist meine Erfahrung mit so ziemlich der gesamten AWS-Dokumentation. Sie ist fast immer entweder (1) viel zu hochrangig, um wirklich nützlich zu sein, oder (2) viel zu ausführlich, mit einer riesigen Menge an überflüssigen Informationen, die ich durchforsten und verwerfen muss, bevor ich zu dem komme, was ich herauszufinden versuche.
Nur ein Beispiel: Ich musste kürzlich ein AWS Partner Central Konto mit einem AWS Management Konto verknüpfen, und der Prozess und die Dokumentation waren schmerzhaft kompliziert: https://docs.aws.amazon.com/partner-central/latest/getting-s...
- solatic
> Beim nächsten Mal wähle ich ein Tool basierend auf der Entwicklererfahrung zuerst, nicht auf der Bequemlichkeit der AWS-Service-Integration. Die Zeit, die wir mit dem Debuggen von Cognito-Problemen verloren haben, hätte für mehrere Jahre eines kostenpflichtigen Auth-Anbieters gereicht.
Wie viele kostenpflichtige Auth-Anbieter erlauben es dir, Benutzer-Passwort-Hashes zu exportieren, sodass du nahtlos zu einem anderen Anbieter migrieren kannst, wenn du das möchtest?
Das ganze Problem mit Auth ist, dass (a) Anmeldebildschirme nicht authentifizierten Benutzern gezeigt werden, was eine Obermenge einschließlich Angreifern ist, die alles von DDoS bis hin zu konstruierten bösartigen Eingaben tun, um Benutzergeheimnisse zu erlangen, also möchtest du wirklich etwas wählen, das bereits in großem Produktionsmaßstab läuft und alle Produktionsnarben hat, und (b) dass der Bedarf an einem verwalteten Anbieter sehr im Spannungsfeld mit lokaler Entwicklung, Anbieterunabhängigkeit, Datenportabilität und anderen guten Engineering-Praktiken (TM) steht.
Klar, AWS Cognito ist nervig. In vielerlei Hinsicht fühlt sich das Produkt festgefahren an. Kompromisse einzugehen, um Sachen auszuliefern, zum Laufen zu bringen und stabil zu halten, ist nervig. Aber ehrlich gesagt, wenn du nicht (b) über (a) bevorzugst (und es gibt Zeiten, in denen das sinnvoll ist, insbesondere bei Intranet-Anwendungen hinter einer Firewall, die nicht wirklich anfällig für diese Art von Angriffen sind) und etwas wie Keycloak wählst, könntest du viel schlechter als Cognito abschneiden (schauder, Okta, schauder).
- patwolf
Meine Erfahrung mit Cognito stimmt exakt mit der des Autors überein. Ich habe früher hauptsächlich Auth0 verwendet, aber wir sind für ein neues Projekt zu Cognito gewechselt, weil es billiger wäre.
Magst du nicht, dass E-Mail-Adressen case-sensitiv sind, und jetzt willst du das ändern? Tut mir leid, du musst einen neuen User Pool von Grund auf erstellen – es gibt keine Möglichkeit zu migrieren.
- mannyv
Ich erinnere mich, dass ich mit dem Cognito-Team über das Zurücksetzen von Passwörtern gesprochen habe und ihnen widersprochen habe, dass die Möglichkeit, ein Passwort festzulegen, eine erforderliche Funktion sei. Sie sagten: "Nein, warum solltest du jemals nicht durch den Reset-Ablauf gehen müssen? Das ist ein Sicherheitsproblem." Dann haben sie es natürlich ein paar Wochen später hinzugefügt, weil jeder Admin das tun muss. Zu diesem Zeitpunkt hatten sie also eine Reihe von Leuten, die daran arbeiteten und null operative Erfahrung hatten.
Zwei Vorteile von Cognito sind (1) es ermöglicht dir, sich bei einem Dienst anzumelden, ohne lokal irgendwelche Anmeldeinformationen zu haben, und (2) diese Cognito-Identität ermöglicht dir, Zugriff auf AWS-Ressourcen zu gewähren. Das kannst du wahrscheinlich jetzt tun, aber viele Lösungen erfordern immer noch einen Schlüssel auf dem Gerät... was ein offensichtliches Sicherheitsproblem ist.
Außerdem machte es die Verwendung eines eigenen Backends für die Authentifizierung einfacher, Dinge zu verwalten, weil deine Auth nicht in Cognito gefangen war.
- cldcntrl
Cognito hat echte raue Kanten, dieser Artikel erwähnt keine davon wirklich.
Wenn du jemals versucht hast, zum Beispiel eine funktionierende SAML-Integration durch Cognito zu implementieren, weißt du, wie obskur der Ablauf ist. Ich musste mit dem Cognito-Team zusammenarbeiten, um echte Showstopper-Bugs zu beheben.
Definitiv nicht AWS's am meisten polierter Dienst, aber brauchbar, wenn du die Einzelheiten kennst.
- nater5000
Ich stimme nicht zu, dass AWS Cognito nicht der einfachste Auth-Dienst ist, mit dem man arbeiten kann, aber wenn du es einmal herausgefunden hast, funktioniert es genauso gut wie die anderen.
Ich habe genau die gleichen Schmerzen (und viele mehr) erlebt, die der Autor beschrieben hat. Aber die Sache ist die: Wenn du diese Schmerzen einmal erlebt hast, weißt du, wie du mit ihnen umgehen kannst. In der Software musst du es nur einmal herausfinden, und dann ist es erledigt.
Ich kann nicht sagen, dass ich die Cognito-Nutzung auf etwas Massives skaliert habe, aber ich kann sagen, dass es die Mühe wert ist, alles in AWS zu behalten (zumindest je nach Kontext). Cognito bietet viele Optionen für tatsächliche Anpassungen (die gehostete Benutzeroberfläche ist nur für anfängliche Tests gut, dann wirf sie weg). Und natürlich können LLMs genauso einfach mit Cognito umgehen wie mit jedem anderen Auth-Dienst. Ich hatte nicht das Vergnügen, LLMs zu verwenden, als ich Cognito eingerichtet habe, aber es ist immer noch meine erste Wahl für Auth, und Claude stolpert nicht darüber.
- mikigraf
Fang mir nicht erst mit Backups oder anderen grundlegenden Funktionen an, die man von einem solchen Dienst erwarten würde. AWS sollte entweder eine Übernahme tätigen (Auth0 oder ein kleineres Unternehmen wie Wristband?) und den Dienst neu aufbauen oder ihn einfach einstellen. Stattdessen haben wir einen kritischen Dienst, auf den Unternehmen angewiesen sind, in der Schwebe...
- dabinat
Persönlich würde ich mein Geschäft niemals auf eine Technologie aufbauen, die an einen bestimmten Anbieter gebunden ist, der es schwierig macht, zu wechseln, wenn dieser Anbieter einen schlechten Service liefert oder die Preise massiv erhöht.