Autorisierung mit RAD Server Engine
Nach oben zu RAD Server Engine (EMS-Server)
Mithilfe der EMS-Server-Autorisierung können Sie den Zugriff auf eine EMS-Ressource oder einen bestimmten EMS-Endpunkt in einer HTTP-Anforderung autorisieren oder ablehnen.
Die Autorisierung hängt von den in der HTTP-Anforderung an den EMS-Server verwendeten Anmeldeinformationen ab.
Standardmäßig sind EMS-Ressourcen und -Endpunkte öffentlich.
In EMS gibt es drei unterschiedliche Arten von Anmeldeinformationen:
- Master Secret Key. Mit dieser Anmeldeinformation kann eine HTTP-Anforderung auf einen beliebigen EMS-Endpunkt in jeder EMS-Ressource Ihres EMS-Servers zugreifen.
- Benutzer. Diese Anmeldeinformation weist einen bestimmten EMS-Benutzer aus. Der Zugriff auf Endpunkte und Ressourcen ist auf diejenigen beschränkt, die für den Benutzer oder die Gruppe, zu der der Benutzer gehört, autorisiert sind.
- Application Secret. Diese Anmeldeinformation kann auf Endpunkte zugreifen, die für alle HTTP-Anforderungen autorisiert sind.
Inhaltsverzeichnis
Anmeldeinformationen für die EMS-Autorisierung
Authentifizierung mit dem EMS MasterSecret Key
Der EMS MasterSecret Key (MasterSecret) autorisiert Sie für einen vollständigen Zugriff auf alle EMS-Daten, die in der EMS-Datenbank gespeichert sind.
Verwenden Sie diesen EMS MasterSecret Key für administrative Aufgaben. Mit dem EMS MasterSecret Key haben Sie Zugriff auf alle EMS-Ressourcen auf dem EMS-Server.
Ändern Sie den MasterSecret Key in der Konfigurationsdatei des EMS-Servers.
Authentifizierung mit dem EMS Application Secret Key
Der EMS Application Secret Key (AppSecret) autorisiert Sie für den Zugriff auf die aus einer EMS-Client-Anwendung autorisierten Endpunkte.
Ändern Sie den AppSecret Key in der Konfigurationsdatei des EMS-Servers.
EMS-Zugriffsregeln
Sie können Zugriffsregeln erstellen, um die Autorisierung für bestimmte EMS-Ressourcen oder EMS-Ressourcenendpunkte zu konfigurieren.
Sie können eine neue Zugriffsregel für Ressourcen aus der EMS Administrative API (wie EMS-Benutzer und EMS-Gruppen) oder für eine benutzerdefinierte EMS-Ressource festlegen.
- Hinweis: Wenn der EMS-Server den Zugriff auf die EMS-Ressource über die MasterSecret-Authentifizierung steuert, werden die in der EMS-Konfigurationsdatei festgelegten Zugriffsregeln ignoriert.
Sie können die Zugriffsregeln mit Einstellungen (wie einem JSON-String) für Folgendes festlegen:
- Eine Ressource. Die Ressourceneinstellungen gelten für alle Endpunkte in dieser EMS-Ressource.
- Einen bestimmten Endpunkt. Die Endpunkteinstellungen überschreiben die Einstellungen für die Ressource.
Sie können die folgenden JSON-Attribute für eine EMS-Ressource oder einen EMS-Ressourcenendpunkt ändern:
JSON-Attribut | Beschreibung |
---|---|
{"public": true}
|
Autorisiert alle Anforderungen. |
{"public": false}
|
Eine EMS-Client-Anwendung kann abhängig vom EMS-Benutzer oder der EMS-Gruppe autorisiert werden. |
{"users": ["username1", "username2"]}
|
Autorisiert einen EMS-Benutzer anhand des Feldes username. |
{"users": ["userid1", "userid2"]}
|
Autorisiert einen EMS-Benutzer anhand des Feldes userid. |
{"users": ["*"]}
|
Autorisiert alle EMS-Benutzer. |
{"groups": ["groupname1", "groupname2"]}
|
Autorisiert alle EMS-Benutzer, die zu einer EMS-Gruppe gehören. |
{"groups": ["*"]}
|
Autorisiert alle EMS-Benutzer in allen EMS-Gruppen. |
Im folgenden Beispiel werde alle Methoden in der Ressource Users als privat festgelegt, außer für die EMS-Endpunkte LoginUser und SignupUser:
Users={"public": false}
Users.LoginUser={"public": true}
Users.SignupUser={"public": true}
Im folgenden Beispiel werden alle Methoden in der benutzerdefinierten EMS-Ressource Resource1 für alle EMS-Benutzer in der Gruppe group1 zur Verfügung gestellt:
Resource1={"groups": ["group1"]}
Erstellen und ändern Sie die Zugriffsregeln in der Konfigurationsdatei des EMS-Servers.
Im Protokoll im Fenster des EMS-Servers können Sie die erstellten Zugriffsregeln anzeigen (als RegACL-Eintrag).
Steuern des Zugriffs auf EMS-Ressourcen und -Endpunkte
Es gibt zwei Arten, den Zugriff auf Ressourcen und Endpunkte durch einen EMS-Benutzer oder eine EMS-Client-Anwendung zu steuern.
Ändern der Konfigurationsdatei des EMS-Servers
Mit der Konfigurationsdatei des EMS-Servers (Datei emsserver.ini) können Sie die Autorisierung durch Ressourcen und Endpunkte konfigurieren.
Konfigurieren Sie die MasterSecret- oder die AppSecret-Schlüssel, oder erstellen Sie neue Zugriffsregeln für die EMS-Ressourcen und -Endpunkte
- Hinweis: Wenn Sie diese Werte in der Datei emsserver.ini ändern, müssen Sie den EMS-Server anhalten, damit die Konfigurationsparameter neu geladen werden. Sie müssen EMSDevServer.exe beenden und neu starten, damit die Datei emsserver.ini neu geladen wird.
Programmseitige Steuerung
Sie können neue benutzerdefinierte EMS-Ressourcen erstellen und Code hinzufügen, der den Zugriff auf bestimmte EMS-Endpunkte verhindert. Im Code können Sie überprüfen, ob die Anforderung von einem bestimmten EMS-Benutzer oder von einem EMS-Benutzer in einer bestimmten EMS-Gruppe stammt.
Wenn der in der Anforderung bezeichnete EMS-Benutzer nicht auf den Endpunkt zugreifen darf, sollte die benutzerdefinierte Ressource eine Exception auslösen (um anzugeben, dass die Anforderung nicht autorisiert ist).