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.
/api/organizationsRequires: manage:organizationsErstellt 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:
| Feld | Typ | Pflicht | Hinweise |
|---|---|---|---|
name | string | Ja | Interner Name, eindeutig pro Tenant |
displayName | string | Nein | Für Benutzer sichtbarer Name in der UI |
slug | string | Nein | URL-sicherer Bezeichner, wird automatisch aus name generiert, wenn nicht angegeben |
metadata | object | Nein | Beliebiges JSON für anwendungsspezifische Daten |
/api/organizationsRequires: view:organizationsGibt eine paginierte Liste aller Organisationen im Tenant zurück. Unterstützt search und page/limit Query-Parameter.
/api/organizations/[id]Requires: view:organizationsGibt den Organisations-Datensatz inklusive Mitgliederzahl und grundlegender Einstellungen zurück.
/api/organizations/[id]Requires: manage:organizationsAktualisiert Organisationsfelder. Alle Felder sind optional — nur angegebene Felder werden aktualisiert.
/api/organizations/[id]Requires: manage:organizationsLö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.
| Rolle | Fähigkeiten |
|---|---|
| OWNER | Vollstä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. |
| ADMIN | Kann Mitglieder verwalten (hinzufügen, entfernen, Rollen bis ADMIN ändern). Kann SSO und Organisationseinstellungen konfigurieren. Kann die Organisation nicht löschen. |
| MEMBER | Standardzugriff. Rollenzuweisungen sind anwendungsdefiniert — Auris legt auf dieser Ebene keine Ressourcenbeschränkungen fest, außer denen, die deine Anwendung durchsetzt. |
| VIEWER | Nur-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
/api/organizations/[id]/membersRequires: view:organizationsGibt 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 }
}/api/organizations/[id]/membersRequires: manage:organizationsFü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"
}/api/organizations/[id]/members/[userId]Requires: manage:organizationsAktualisiert die Rolle des Mitglieds innerhalb der Organisation.
/api/organizations/[id]/members/[userId]Requires: manage:organizationsEntfernt 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:
- Ein ADMIN oder OWNER sendet eine Einladung an eine E-Mail-Adresse.
- Auris generiert ein eindeutiges, zeitlich begrenztes Token und sendet eine E-Mail mit einem Akzeptier-Link.
- 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.
- Einladungen laufen nach 7 Tagen ab, wenn sie nicht akzeptiert wurden.
/api/organizations/[id]/invitationsRequires: manage:organizationsErstellt und sendet eine Einladung an eine E-Mail-Adresse.
{
"email": "[email protected]",
"role": "MEMBER",
"message": "Du wurdest eingeladen, Acme Corp auf unserer Plattform beizutreten."
}/api/organizations/[id]/invitationsRequires: manage:organizationsListet alle ausstehenden, akzeptierten und abgelaufenen Einladungen für die Organisation auf.
/api/organizations/[id]/invitations/[invitationId]Requires: manage:organizationsStorniert eine ausstehende Einladung. Abgelaufene Einladungen können nicht akzeptiert werden, müssen aber nicht manuell storniert werden.
Einladungs-Status:
| Status | Bedeutung |
|---|---|
PENDING | Gesendet und wartet auf Akzeptanz |
ACCEPTED | Benutzer hat akzeptiert und ist nun Mitglied |
EXPIRED | 7-Tage-Fenster verstrichen ohne Akzeptanz |
CANCELLED | Manuell von einem ADMIN oder OWNER storniert |
SDK-Verwendung
React
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
| Operation | Berechtigung |
|---|---|
| Organisationen auflisten / abrufen | view:organizations |
| Organisationen erstellen / aktualisieren / löschen | manage:organizations |
| Mitglieder verwalten | manage:organizations |
| Einladungen senden / stornieren | manage:organizations |
Verwandte Seiten
- Enterprise SSO pro Organisation — SAML 2.0 oder OIDC SSO für einzelne Organisationen konfigurieren
- SCIM 2.0-Provisionierung — Mitglieder-Synchronisation von einem externen IdP automatisieren
- Rollen & Berechtigungen — RBAC auf Tenant-Ebene, das Organisationsrollen ergänzt
- Console: Organisationen — Vollständige Console-Anleitung