Organisationstemplate
Ein Organisationstemplate ist ein Zugangskontroll-Design für Multi-Tenant-Apps. Es baut auf den Grundlagen der rollenbasierten Zugangskontrolle (RBAC) auf, ist jedoch für Multi-Tenant-Umgebungen angepasst, in denen Organisationen Unternehmen, Gruppen oder Benutzer repräsentieren.
Auf Organisationsebene ist eine Zugangskontrolle erforderlich, um Berechtigungen für Ressourcen zu verwalten.
Hier ist ein Beispiel mit Notion, einem beliebten Kollaborationstool und einer typischen Multi-Tenant-App. Es unterstützt verschiedene Funktionen für Authentifizierung und Autorisierung:
- Du kannst mit einem Konto mehrere Arbeitsbereiche erstellen und beitreten, anstatt separate Konten für jeden Arbeitsbereich zu benötigen.
- Notion verwendet das gleiche Set von Zugriffsleveln, wie "Arbeitsbereichsbesitzer" und "Mitglied", über alle Arbeitsbereiche hinweg, obwohl du möglicherweise unterschiedliche Zugriffslevel für jeden erwartest.
In diesem Kapitel konzentrieren wir uns auf das Organisationstemplate, das sich auf das Autorisierungsdesign auf Organisationsebene bezieht.
Um es richtig einzurichten, musst du verstehen, [wie Organisationen funktionieren] und welche verschiedenen Entitäten beteiligt sind. Wenn du das noch nicht überprüft hast, solltest du diese Kapitel lesen.
Organisationstemplate verstehen
Organisationsberechtigung
Organisationsberechtigung bezieht sich auf die Autorisierung, eine Aktion im Kontext einer Organisation auszuführen. Eine Organisationsberechtigung sollte als aussagekräftiger String dargestellt werden, der auch als Name und eindeutiger Identifikator dient.
Zum Beispiel edit:resource
.
Organisationsberechtigungen sind ohne den Kontext einer Organisation nicht aussagekräftig. Zum Beispiel ist edit:resource
im Kontext der Organisation org1
anders als edit:resource
im Kontext der Organisation org2
, da sie auf unterschiedliche Ressourcen verweisen (org 1
vs org 2
).
Organisationsrolle
Eine Organisationsrolle ist eine Sammlung von Organisations- oder API-Berechtigungen (Berechtigungen, die direkt in API-Ressourcen in Logto Cloud definiert sind), die Benutzern zugewiesen werden können.
Organisationsrollen sind ohne den Kontext einer Organisation nicht aussagekräftig. Zum Beispiel ist admin
im Kontext der Organisation org1
anders als admin
im Kontext der Organisation org2
.
Kann ich Berechtigungen, die auf API-Ressourcenebene definiert sind, Organisationsrollen zuweisen?
Ja, du kannst API-Berechtigungen Organisationsrollen zuweisen, nicht nur Berechtigungen auf Organisationsebene.
API-Ressourcen in Logto Cloud schützen hauptsächlich Benutzer- / Systemressourcen, aber wenn Systeme und Organisationen Endpunkte teilen, ermöglicht Logto die Zuweisung von API-Berechtigungen zu Organisationsrollen für Flexibilität.
Organisationstemplate
Organisationstemplate bezieht sich auf eine Sammlung von Organisationsberechtigungen und -rollen, die für jede Organisation gelten. Es wird als rollenbasierte Zugangskontrolle auf Organisationsebene betrachtet.
Denke an eine typische Kollaborations-App, und sie teilen natürlich das gleiche Zugangskontroll-"Template", das Zugriffslevel definiert und was Benutzer in der Organisation tun können. Wir nennen es "Organisationstemplate" in Logto.
Lass uns ein Beispiel nehmen, um zu verstehen, wie alles zusammenhängt:
John, Sarah sind in verschiedenen Organisationen mit unterschiedlichen Rollen im Kontext verschiedener Organisationen.
Aus diesem Diagramm sind hier einige Informationen, die du wissen musst:
- John ist mit zwei Organisationen verbunden und verwendet die E-Mail
[email protected]
als seinen eindeutigen Identifikator. Er hat die Position desadmin
inOrganisation A
und ist einGast
inOrganisation B
. - Sarah ist mit einer einzigen Organisation verbunden und verwendet die E-Mail
[email protected]
als ihren eindeutigen Identifikator. Sie ist dieadmin
vonOrganisation B
. - Die Rollen
Admin
,Mitglied
undGast
sind innerhalb von Organisationen festgelegt und diese Rollen sind konsistent über verschiedene Organisationen hinweg. - Zusätzliche Rollen können innerhalb der Organisationstemplate-Einstellungen erstellt werden. Diese neu erstellten Rollen werden auf alle Organisationen angewendet und geteilt.
In Logto ist das Organisationstemplate ein Zugangskontrollmodell, das speziell für Organisationen entwickelt wurde. Obwohl es auf der rollenbasierten Zugangskontrolle (RBAC) basiert, ist es für unterschiedliche Szenarien gedacht.
Verwende das Organisationstemplate, wenn du Rollen und Berechtigungen für eine Organisation einrichten musst.
Für eine einfache B2C-App ohne Organisationsebene verwende stattdessen Benutzer- / System-RBAC.
Du kannst sowohl das Organisationstemplate als auch Benutzer- / System-RBAC in Logto verwenden, um einen robusteren Ansatz zu verfolgen, der deinen spezifischen Geschäfts- und Produktanforderungen entspricht. Um RBAC zu verstehen, siehe diesen Abschnitt.