Realms (Multi-Tenancy)¶
Ein Realm macht aus einer einzelnen IdentityServerNET-Instanz einen Multi-Tenant-Server. Jeder Realm ist ein isolierter Mandant mit eigenem Administrator, eigenen Clients, Rollen und Ressourcen — und teilt sich trotzdem eine Installation, eine Datenbank und die globalen Identity-/API-Ressourcen mit allen anderen.
Die Zugehörigkeit zu einem Realm basiert auf der E-Mail-Domain: Ein Realm besitzt eine oder mehrere
E-Mail-Domains (z. B. acme.com), und jeder Benutzer, dessen E-Mail-Adresse auf eine dieser Domains
endet, gilt automatisch als Mitglied dieses Realms. Es gibt keinen eigenen Schritt „Benutzer einem Realm
zuweisen“ und auch keinen Suffix am Benutzerkonto selbst — die Zugehörigkeit ergibt sich rein aus der
E-Mail-Domain.
Realm-gebundene Objekte — Clients, Rollen und Identity-/API-Ressourcen — tragen dagegen einen
Namespace-Suffix, {name}@{realm} (z. B. ein Client my-app@acme). Damit sind die Clients und
Rollen eines Realms klar von den globalen und von denen anderer Realms getrennt, während ein globales
Objekt (ohne @realm-Suffix) standardmäßig nur von Benutzern verwendet werden kann, die keinem
Realm angehören — siehe Realm-fremden und öffentlichen Zugriff auf einen Client erlauben dazu, wie ein Client auch Benutzer anderer Realms
zulassen kann.
Bemerkung
Realms sind eine optionale Funktion. Eine Installation, in der nie ein Realm angelegt wird, verhält sich exakt wie ein klassischer Single-Tenant-IdentityServerNET-Server.