Fallstudie: Multi-Tenancy mit Logto-Organisationen aufbauen
Erfahre, wie du eine solide und skalierbare Identitätsgrundlage für Multi-Tenancy mit Logto-Organisationen einrichtest.
Heutzutage wird Multi-Tenancy zu einem wesentlichen Bestandteil einer App oder eines SaaS. Es beinhaltet oft die komplexe Beziehung zwischen Benutzern, Organisationen, Rollen und Berechtigungen. Zum Beispiel kann ein Benutzer Mitglied mehrerer Organisationen sein, und umgekehrt; ein Benutzer kann auch unterschiedliche Rollen in verschiedenen Organisationen haben.
Das Problem
Dies kann nicht nur zu Kopfschmerzen am Anfang führen, sondern auch zur langfristigen Wartung einer App. Das traditionelle Modell der rollenbasierten Zugriffskontrolle (RBAC) kann dieses Problem teilweise lösen, wird jedoch schnell zu einem Albtraum, wenn die Anzahl der Benutzer und Organisationen wächst.
Zum Beispiel hast du anfangs vielleicht nur zwei Rollen in jeder Organisation: admin
und member
. Wenn du 10 Organisationen hast, verwaltest du 20 Rollen; wenn du 1.000 Organisationen hast, verwaltest du 2.000 Rollen.
Mit dem Wachstum des Unternehmens musst du möglicherweise weitere Rollen hinzufügen, wie guest
, developer
usw. Die Komplexität des RBAC-Modells wird exponentiell zunehmen.
Dasselbe Problem hatten wir, als wir Logto Cloud aufgebaut haben. Wir erkannten schnell, dass es ein häufiges Problem in der Branche ist, und wir müssen es lösen. Und Logto Organisationen sind hier, um zu helfen.
Organisationstemplate
Eine kurze Frage: Warum sind SaaS-Apps SaaS? Wir glauben, dass Skalierbarkeit einer der wichtigsten Gründe ist. Mit anderen Worten, was für einen Kunden funktioniert, sollte für alle Kunden funktionieren.
Dies führt zu dem Konzept des "Organisationstemplates". Ein Organisationstemplate ist ein Plan für das Zugriffssteuerungsmodell jeder Organisation: Es definiert die Rollen und Berechtigungen, die für alle Organisationen gelten.
Angenommen, wir haben zwei Rollen für jede Organisation:
admin
: kann die Organisation verwalten, einschließlich Hinzufügen / Entfernen von Mitgliedern, Ändern von Rollen usw.member
: kann auf die Ressourcen der Organisation zugreifen und neue Mitglieder einladen.
Wir können ein Organisationstemplate mit der folgenden Konfiguration erstellen:
Benutzer zu Organisationen hinzufügen
Da wir das Organisationstemplate eingerichtet haben, wird die Verwaltung von Benutzern einfach und natürlich. Du kannst einen Benutzer zu einer Organisation hinzufügen, entweder über die Logto-Konsole (das Web-UI) oder über die Logto-Management-API.
Siehe Organisationen konfigurieren, um mehr zu erfahren.
Wir haben zwei Organisationen mit der folgenden Konfiguration hinzugefügt:
- Organisation A: Sowohl Alice als auch Bob sind Mitglieder. Alice hat die Rolle
admin
und Bob die Rollemember
. - Organisation B: Nur Alice ist Mitglied und sie hat die Rolle
member
.
Organisationstokens in deiner App anfordern
In deiner Kunden-App kannst du nun ein Organisationstoken (Organisationstoken) von Logto anfordern. Das Organisationstoken ist ein JWT-Token, das notwendige Informationen enthält, damit dein Dienst überprüfen kann, ob der Benutzer die Berechtigung in der Organisation hat.
Die detaillierten Schritte zur Anforderung eines Organisationstokens sind in Organisationen in deine App integrieren beschrieben.
Angenommen, Alice ist in deiner App angemeldet und möchte einen Benutzer in Organisation A entfernen. Deine App kann ein Organisationstoken für "Organisation A" mit der Berechtigung remove:member
(Bereich) anfordern. Logto wird überprüfen, ob Alice die Berechtigung in der Organisation hat, und ein Organisationstoken zurückgeben, da sie die Rolle admin
hat:
Hier sind einige Beispiele für Fehlerszenarien:
- Wenn Bob in Organisation A einen Benutzer entfernen möchte, würde Logto einen Fehler zurückgeben, da er nicht die Rolle
admin
in Organisation A hat. - Wenn Alice einen Benutzer in Organisation B entfernen möchte, würde Logto ebenfalls einen Fehler zurückgeben, da sie nicht die Rolle
admin
in Organisation B hat. - Wenn Bob ein Organisationstoken mit irgendeiner Berechtigung in Organisation B abrufen möchte, würde Logto einen Fehler zurückgeben, da er keine Mitgliedschaft in Organisation B hat.
Nachdem deine App das Organisationstoken erhalten hat, kann sie deinen Dienst mit dem Organisationstoken aufrufen, indem es dem Authorization
-Header hinzugefügt wird.
Organisationstokens in deinem Dienst verifizieren
In deinem Dienst kannst du das Organisationstoken durch den standardmäßigen JWT-Verifizierungsprozess verifizieren. Siehe Organisationstokens verifizieren für weitere Details.
Organisationstemplate aktualisieren
Wenn du das Organisationstemplate aktualisieren musst, zum Beispiel eine neue Rolle namens developer
hinzufügen, kannst du dies in der Logto-Konsole oder über die Logto-Management-API tun. Die Änderung wird automatisch auf alle Organisationen angewendet, ohne Ausfallzeiten zu verursachen.
Fazit
Mit Logto-Organisationen wird die Verwaltung und Skalierung von Multi-Tenancy standardmäßig und komfortabel. Du kannst dich auf deine Geschäftslogik konzentrieren und die Identitäts- und Zugriffskontrolle Logto überlassen.