Autorisierung mit RAD Server Engine

Aus RAD Studio
Wechseln zu: Navigation, Suche

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.

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).

EMSServerLog RegACL.png

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).

Siehe auch