Skip to Content

B2B Multi-Tenant-Organisationen

Das Organisations-System ermöglicht B2B-Mehrmandantenfähigkeit in Auris. Jede Organisation repräsentiert eine Kundeneinheit — ein Unternehmen, ein Team oder eine beliebige logische Gruppierung —, die eine Menge von Mitgliedsbenutzern besitzt, eigene Rollenzuweisungen hat und einen eigenen Enterprise-SSO-Provider konfigurieren kann. Organisationen sind voneinander unabhängig: Die Rolle eines Benutzers in Organisation A hat keinen Einfluss auf seinen Zugriff in Organisation B.

Dieses Modell ist für SaaS-Produkte konzipiert, die an Unternehmen verkaufen: Dein einzelner Auris-Tenant hostet mehrere Kundenorganisationen, jede mit isolierter Mitgliedschaft und Zugriffskontrolle.


Kernkonzepte

Organisation: Eine benannte Entität mit einem eindeutigen slug. Organisationen haben Metadaten, Anzeigenamen und Einstellungen. Sie gehören immer genau einem Benutzer (dem OWNER).

Organisationsmitglied: Ein Benutzer, der einer Organisation mit einer von vier Rollen angehört: OWNER, ADMIN, MEMBER oder VIEWER.

Einladung: Eine zeitlich begrenzte, Token-basierte Einladung, die einem Benutzer (oder einer noch nicht registrierten E-Mail-Adresse) ermöglicht, einer Organisation mit einer festgelegten Rolle beizutreten.

Organisations-spezifisches SSO: Jede Organisation kann ihren eigenen SAML 2.0- oder OIDC-Identity-Provider konfigurieren. Wenn sich ein Benutzer mit einer E-Mail-Adresse anmeldet, die einer verifizierten Domain entspricht, leitet Auris ihn automatisch zum IdP seiner Organisation weiter. Siehe Enterprise SSO.


Organisationen erstellen

Organisationen können von jedem Benutzer mit der entsprechenden Berechtigung oder programmgesteuert über das Management SDK erstellt werden.

POST/api/organizationsRequires: manage:organizations

Erstellt eine neue Organisation. Der erstellende Benutzer wird automatisch der OWNER-Rolle zugewiesen.

Request-Body:

{ "name": "Acme Corporation", "displayName": "Acme Corp", "slug": "acme-corp", "metadata": { "plan": "enterprise", "contractId": "KTR-2025-0042" } }

Feldreferenz:

FeldTypPflichtHinweise
namestringJaInterner Name, eindeutig pro Tenant
displayNamestringNeinFür Benutzer sichtbarer Name in der UI
slugstringNeinURL-sicherer Bezeichner, wird automatisch aus name generiert, wenn nicht angegeben
metadataobjectNeinBeliebiges JSON für anwendungsspezifische Daten
GET/api/organizationsRequires: view:organizations

Gibt eine paginierte Liste aller Organisationen im Tenant zurück. Unterstützt search und page/limit Query-Parameter.

GET/api/organizations/[id]Requires: view:organizations

Gibt den Organisations-Datensatz inklusive Mitgliederzahl und grundlegender Einstellungen zurück.

PATCH/api/organizations/[id]Requires: manage:organizations

Aktualisiert Organisationsfelder. Alle Felder sind optional — nur angegebene Felder werden aktualisiert.

DELETE/api/organizations/[id]Requires: manage:organizations

Löscht die Organisation. Mitglieder verlieren ihre organisations-spezifischen Rollenzuweisungen. Die zugrundeliegenden Benutzerkonten werden nicht beeinflusst.


Mitgliederrollen

Organisationen verwenden ein vierstufiges hierarchisches Rollensystem. Höhere Rollen erben alle Fähigkeiten niedrigerer Rollen.

RolleFähigkeiten
OWNERVollständige Kontrolle. Kann alle Einstellungen, Mitglieder, SSO und Abrechnung verwalten. Es gibt immer genau einen OWNER. Der OWNER kann nicht von einem anderen OWNER entfernt werden — die Eigentumsübertragung erfordert einen separaten API-Aufruf.
ADMINKann Mitglieder verwalten (hinzufügen, entfernen, Rollen bis ADMIN ändern). Kann SSO und Organisationseinstellungen konfigurieren. Kann die Organisation nicht löschen.
MEMBERStandardzugriff. Rollenzuweisungen sind anwendungsdefiniert — Auris legt auf dieser Ebene keine Ressourcenbeschränkungen fest, außer denen, die deine Anwendung durchsetzt.
VIEWERNur-Lesen-Zugriff. Kann Organisationsmitgliedschaft und Einstellungen ansehen, aber keine Änderungen vornehmen.

Auris setzt die Rollenhierarchie auf API-Ebene durch. Ein ADMIN kann einem anderen Benutzer nicht die OWNER-Rolle zuweisen — eine Eigentumsübertragung erfordert einen separaten API-Aufruf durch den aktuellen OWNER.


Mitglieder verwalten

GET/api/organizations/[id]/membersRequires: view:organizations

Gibt die paginierte Liste der Organisationsmitglieder zurück, einschließlich Benutzerdetails und Rolle innerhalb der Organisation.

Antwort:

{ "data": [ { "userId": "usr_01HX...", "email": "[email protected]", "firstName": "Alice", "lastName": "Rossi", "role": "ADMIN", "joinedAt": "2025-01-15T10:00:00Z" } ], "pagination": { "page": 1, "limit": 20, "total": 12, "totalPages": 1 } }
POST/api/organizations/[id]/membersRequires: manage:organizations

Fügt einen Benutzer (über userId) direkt zur Organisation mit einer festgelegten Rolle hinzu. Der Benutzer muss bereits in Auris existieren.

{ "userId": "usr_01HX...", "role": "MEMBER" }
PATCH/api/organizations/[id]/members/[userId]Requires: manage:organizations

Aktualisiert die Rolle des Mitglieds innerhalb der Organisation.

DELETE/api/organizations/[id]/members/[userId]Requires: manage:organizations

Entfernt den Benutzer aus der Organisation. Das Auris-Konto des Benutzers wird nicht gelöscht oder deaktiviert.


Einladungen

Einladungen ermöglichen es, Benutzer per E-Mail zu einer Organisation hinzuzufügen, auch wenn sie noch kein Auris-Konto haben. Der Einladungsablauf:

  1. Ein ADMIN oder OWNER sendet eine Einladung an eine E-Mail-Adresse.
  2. Auris generiert ein eindeutiges, zeitlich begrenztes Token und sendet eine E-Mail mit einem Akzeptier-Link.
  3. Der Eingeladene klickt auf den Link. Hat er bereits ein Auris-Konto, wird er sofort zur Organisation hinzugefügt. Wenn nicht, wird er aufgefordert, ein Konto zu erstellen, wonach die Einladung akzeptiert wird.
  4. Einladungen laufen nach 7 Tagen ab, wenn sie nicht akzeptiert wurden.
POST/api/organizations/[id]/invitationsRequires: manage:organizations

Erstellt und sendet eine Einladung an eine E-Mail-Adresse.

{ "email": "[email protected]", "role": "MEMBER", "message": "Du wurdest eingeladen, Acme Corp auf unserer Plattform beizutreten." }
GET/api/organizations/[id]/invitationsRequires: manage:organizations

Listet alle ausstehenden, akzeptierten und abgelaufenen Einladungen für die Organisation auf.

DELETE/api/organizations/[id]/invitations/[invitationId]Requires: manage:organizations

Storniert eine ausstehende Einladung. Abgelaufene Einladungen können nicht akzeptiert werden, müssen aber nicht manuell storniert werden.

Einladungs-Status:

StatusBedeutung
PENDINGGesendet und wartet auf Akzeptanz
ACCEPTEDBenutzer hat akzeptiert und ist nun Mitglied
EXPIRED7-Tage-Fenster verstrichen ohne Akzeptanz
CANCELLEDManuell von einem ADMIN oder OWNER storniert

SDK-Verwendung

import { useOrganization } from '@auris/react' function OrgDashboard() { // Gibt den Organisations-Kontext aus der Sitzung des authentifizierten Benutzers zurück. // Die Organisation wird aus den Claims des Access Tokens abgeleitet. const { organization, members, isLoading } = useOrganization() if (isLoading) return <div>Wird geladen...</div> if (!organization) return <div>Keine Organisation</div> return ( <div> <h1>{organization.displayName}</h1> <p>Mitglieder: {members.length}</p> <ul> {members.map((member) => ( <li key={member.userId}> {member.email} — {member.role} </li> ))} </ul> </div> ) }

Organisations-Metadaten

Wie Benutzer unterstützen Organisationen beliebige JSON-Metadaten. Verwende diese, um anwendungsspezifische Daten zusammen mit dem Organisations-Datensatz zu speichern, ohne Schema-Migrationen.

{ "metadata": { "plan": "enterprise", "contractId": "KTR-2025-0042", "maxSeats": 250, "billingEmail": "[email protected]", "features": ["advanced-analytics", "custom-domains", "audit-export"] } }

Metadaten werden in jeder Organisations-API-Antwort zurückgegeben und sind im Management SDK zugänglich.


Anwendungsfälle

SaaS-Mehrmandantenfähigkeit: Jeder deiner Kunden ist eine Organisation. Deine Anwendung liest die Organisation des Benutzers aus seinem JWT oder seiner Sitzung und begrenzt alle Datenbankabfragen auf diese Organisation. Neue Kunden werden durch Erstellen einer Organisation und Einladen ihres Administrators eingerichtet.

Enterprise-Kunden-Onboarding: Erstelle die Organisation, füge den IT-Administrator des Kunden als OWNER hinzu und lass ihn seine eigenen Benutzer verwalten sowie seinen Corporate-SSO konfigurieren. Dein Team behält die Sichtbarkeit auf Tenant-Ebene über die Admin Console.

White-Label-Lösungen: Jede Kundenorganisation kann ihr eigenes SSO, Domain-Verifizierung und Anzeigenamen konfigurieren. Die Hosted-Login-Seite passt sich an das organisations-spezifische Branding an, wenn die E-Mail eines Benutzers einer verifizierten Domain entspricht.

Interne Produktteams: Separate Produktlinien oder Geschäftsbereiche in verschiedene Organisationen aufteilen für isoliertes Rollenmanagement, ohne separate Auris-Tenant-Instanzen zu betreiben.


Erforderliche Berechtigungen

OperationBerechtigung
Organisationen auflisten / abrufenview:organizations
Organisationen erstellen / aktualisieren / löschenmanage:organizations
Mitglieder verwaltenmanage:organizations
Einladungen senden / stornierenmanage:organizations

Verwandte Seiten