Wie stellt man ein Multi-Tenant-Zugangsverwaltungssystem bereit?

Veröffentlicht Feb 11, 2021


Die Antwort ist nicht so einfach, daher werden wir die Frage zunächst in kleinere Teile aufteilen und dann in der Schlussfolgerung die Antwort geben.

Was wollten wir erreichen?

1. Ein vollständig entwickeltes System für die Erstellung von Benutzerkonten und die Möglichkeit, dass sich die Benutzer mit ihren E-Mail-Adressen oder externen Identitätsanbietern wie Facebook und Google anmelden können.

2. Das System sollte auf mehreren Domänen einsetzbar und leicht zu pflegen sein und gleichzeitig die Benutzer aus verschiedenen Domänen in einer einzigen Datenbank verwalten. Das bedeutet, dass ein Benutzer mit einer E-Mail-Adresse in zwei verschiedenen Domänen als ein anderer Benutzer betrachtet wird.

Welche Möglichkeiten haben wir in Betracht gezogen?

Wir haben in Erwägung gezogen, ein System zur Verwaltung des Benutzerzugangs von Grund auf neu aufzubauen. Das bedeutet, dass wir alle unten aufgeführten Funktionen manuell implementieren müssten:

  • Authentifizierung der Benutzer;
  • Jedes Mal ihre Anmeldedaten aktualisieren;
  • Datensicherheit;
  • Verschlüsselung der Daten;
  • Versenden der Bestätigungs-E-Mail;
  • Funktionen zum Vergessen/Rücksetzen des Passworts;
  • Versand von E-Mails mit vergessenem/zurückgesetztem Passwort;
  • Skalierbarkeit.

Glücklicherweise haben wir ein wenig recherchiert und herausgefunden, dass Amazon Cognito alle oben genannten Funktionen mit nur wenigen Klicks bereitstellen kann.

Amazon Cognito ist ein Service, der eine einfache und sichere Benutzerverwaltung bietet. Er unterstützt die Anmeldung bei Identitätsanbietern wie Facebook und Google und ist eine kostengünstige Lösung.

Wie funktioniert Amazon Cognito?

Amazon Cognito ist wirklich einfach einzurichten und zu nutzen. Sie fordern einfach den entsprechenden Cognito-Benutzerpool an, um die Token abzurufen, und verwenden diese Token für den Zugriff auf Ihre Anwendung. In unserem Fall, da wir API Gateway verwenden, richten wir den Cognito User Pool als Autorisierer in jeder Methodenanforderung ein, die zum privaten Bereich der Anwendung führt, der nur für angemeldete Benutzer zugänglich ist. Ein ähnliches Beispiel ist in der folgenden Grafik dargestellt:

how-to-provide-user-access-management-system-the-multi-tenant-way-2.webp

Wie wird es gemacht?

Die vollständige Lösung umfasst einen Microservice, der auf ECS bereitgestellt wird. Der Microservice verwaltet die Erstellung von Benutzern im entsprechenden Cognito User Pool und gibt Login-Token und persönliche Daten für den authentifizierten Benutzer zurück.

Wenn ein Benutzer ein Konto erstellt oder sich anmeldet, werden die Attribute der Domäne zusammen mit den Anmelde-/Registrierungsdaten weitergeleitet. Anschließend stellt der Dienst die Autorisierungs-Token aus dem entsprechenden Cognito User Pool aus. Vor dem Microservice richten wir zwei API-Gateways ein. Eines davon bedient die öffentlich zugänglichen APIs wie die Registrierungs- und die Login-API, die keinen autorisierten Zugriff erfordern. Das andere API-Gateway hat Cognito User Pool als Autorisierer eingestellt.

how-to-provide-user-access-management-system-the-multi-tenant-way-3.webp

Und wie haben wir das Problem der Mehrmandantenfähigkeit gelöst?

  • Für jede Domäne haben wir verschiedene Stufen auf dem API-Gateway erstellt;
  • Für jede Stufe haben wir einen separaten Cognito User Pool erstellt.

Hätten wir uns für einen Einzelbenutzer-Pool mit allen Benutzern an einem Ort entschieden, hätten wir die Anmeldung mit Benutzernamen und Passwort statt mit E-Mail-Adresse und Passwort erlaubt. Dies würde uns auch daran hindern, die Anmeldung über föderierte Identitätsanbieter zu ermöglichen. Um eine föderierte Anmeldung anbieten zu können, müssten wir eine große Menge an benutzerdefinierter Logik neu schreiben.

how-to-provide-user-access-management-system-the-multi-tenant-way-4.webp

Um diese möglichen Nachteile zu überwinden, haben wir für jede Domäne einen eigenen Cognito User Pool erstellt und angepasst. Letztendlich speichern wir die Benutzer immer noch in einer einzigen Datenbank, aber wir haben unterschiedliche Benutzerpools pro Domäne.

Fazit

Die Verwendung von Amazon Cognito für die Benutzerauthentifizierung ist viel einfacher und effizienter als die Erstellung eines eigenen Authentifizierungsdienstes von Grund auf. Und was am wichtigsten ist: Sie müssen sich keine Gedanken über die Sicherheit oder Verschlüsselung der Daten machen.

Mehrere Domains in einem einzigen Benutzerpool zu haben, war in unserem Fall nicht möglich, da wir wollten, dass die Anmeldung nur mit einer E-Mail-Adresse oder über Facebook / Google erfolgt. Aus diesem Grund haben wir uns für mehrere Benutzerpools entschieden.

Und nicht zuletzt haben wir uns für ein API-Gateway pro Umgebung mit mehreren Stufen für jede Domäne entschieden, um die Erstellung mehrerer Ressourcen und die zusätzliche Wartungsarbeit zu reduzieren.

Irena Spiridonova

Irena Spiridonova

Buchen Sie eine kostenlose Beratung

Wählen Sie Ihre Branche*

Bitte wählen Sie Ihre Branche*

Wählen Sie Ihren Servicetyp

Bitte wählen Sie Ihren Servicetyp

calendarWann passt es Ihnen am besten für ein kurzes Gespräch

Die mit * gekennzeichneten Felder sind Pflichtfelder

Diese Website ist durch reCAPTCHA geschützt und es gelten die Datenschutzerklärung und Nutzungsbedingungen von Google.

Zeit- und Materialaufwand vs. Festpreis

Zeit und Materialien vs. Festpreis: Welches Vertragsmodell reduziert das finanzielle Risiko?

Mar 31, 2026
Wenn die meisten Leute über Zeit und Materialien oder Festpreise diskutieren, sehen sie dies als eine Frage des Projektmanagements. Welches Modell passt zu unserem Arbeitsablauf? Welches Modell passt zu unserem Entwicklungsteam? Diese Fragen sind wichtig - aber sie gehen am Kern der Sache vorbei. Für einen CFO oder Finanzleiter lautet die eigentliche Frage: Wo liegt das finanzielle Risiko? Die Ve
Aneta Pejchinoska

Aneta Pejchinoska

Scope Creep in der Softwareentwicklung

Verhinderung von Scope Creep in der Softwareentwicklung: Wie man Software-Budgets vorhersehbar hält

Mar 30, 2026
Seien wir ehrlich - Software-Projekte haben den Ruf, das Budget zu sprengen. Und in den meisten Fällen ist die schleichende Ausweitung des Projektumfangs der Übeltäter, der sich im Verborgenen hält. Nach Angaben des Project Management Institute (PMI) verschwenden Unternehmen im Durchschnitt 97 Millionen Dollar pro 1 Milliarde Dollar, die in Projekte investiert werden, aufg
Aneta Pejchinoska

Aneta Pejchinoska

Ein einfacher Leitfaden zur WCAG-2.1-Konformität

Ein einfacher Leitfaden zur WCAG-2.1-Konfortmität

Jan 4, 2026
Barrierefreiheit sollte von Anfang an in Ihr Produkt integriert sein, nicht erst später hinzugefügt werden. Wenn Menschen mit Behinderungen Ihre Benutzeroberfläche nicht nutzen können, verlieren Sie Kunden, erhöhen die Supportkosten und gehen rechtliche Risiken ein. Die Zugänglichkeitsrichtlinien für Webinhalte (WCAG 2.1) stammen vom World Wide Web Consortium. Betrachten Sie sie als das Regelwerk
Intertec

Intertec

Alle Beiträge anzeigen