Autorisierung mit RAD Server Engine
Nach oben zu RAD Server Engine (EMS-Server)
Über die Autorisierung mit der RAD Server Engine können Sie den Zugriff auf eine RAD Server-Ressource oder einen bestimmten RAD Server-Endpunkt in einer HTTP-Anforderung autorisieren oder ablehnen.
Die Autorisierung hängt von den in der HTTP-Anforderung an die RAD Server Engine (EMS-Server) verwendeten Anmeldeinformationen ab.
Standardmäßig sind RAD Server-Ressourcen und -Endpunkte öffentlich.
In RAD Server gibt es drei unterschiedliche Arten von Anmeldeinformationen:
- Master-Secret-Schlüssel: Mit dieser Anmeldeinformation kann eine HTTP-Anforderung auf einen beliebigen RAD Server-Endpunkt in jeder RAD Server-Ressource Ihrer RAD Server Engine (EMS-Server) zugreifen.
- Benutzer: Diese Anmeldeinformation weist einen bestimmten RAD Server-Benutzer aus. Der Zugriff auf Endpunkte und Ressourcen ist auf die für den Benutzer oder die Gruppe, der der Benutzer angehört, autorisierten Endpunkte und Ressourcen beschränkt.
- Application Secret: Diese Anmeldeinformation kann auf Endpunkte zugreifen, die für alle HTTP-Anforderungen autorisiert sind.
Inhaltsverzeichnis
Anmeldeinformationen für die RAD Server-Autorisierung
Authentifizierung mit dem MasterSecret-Schlüssel von RAD Server
Der RAD Server-MasterSecret-Schlüssel (MasterSecret) berechtigt Sie zum vollständigen Zugriff auf alle RAD Server-Daten, die in der RAD Server-Datenbank gespeichert sind.
Verwenden Sie diesen RAD Server-MasterSecret-Schlüssel für administrative Aufgaben. Mit dem RAD Server-MasterSecret-Schlüssel haben Sie Zugriff auf alle RAD Server-Ressourcen in der RAD Server Engine (EMS-Server).
Ändern Sie den MasterSecret-Schlüssel in der Konfigurationsdatei der RAD Server Engine.
Authentifizierung mit dem Application Secret-Schlüssel von RAD Server
Der Application Secret-Schlüssel von RAD Server (AppSecret) berechtigt Sie zum Zugriff auf die autorisierten Endpunkte von einer RAD Server-Client-Anwendung aus.
Ändern Sie den AppSecret-Schlüssel in der Konfigurationsdatei der RAD Server Engine.
RAD Server-Zugriffsregeln
Sie können Zugriffsregeln erstellen, um die Autorisierung für bestimmte RAD Server-Ressourcen oder RAD Server-Ressourcenendpunkte zu konfigurieren.
Sie können eine neue Zugriffsregel für Ressourcen aus der RAD Server Administrative API (wie RAD Server-Benutzer und RAD Server-Gruppen) oder für eine benutzerdefinierte RAD Server-Ressource festlegen.
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 RAD Server-Ressource.
- Einen bestimmten Endpunkt: Die Endpunkteinstellungen überschreiben die Einstellungen für die Ressource.
Sie können die folgenden JSON-Attribute für eine RAD Server-Ressource oder einen RAD Server-Ressourcenendpunkt ändern:
JSON-Attribut | Beschreibung |
---|---|
{"public": true}
|
Autorisiert alle Anforderungen. |
{"public": false}
|
Eine RAD Server-Client-Anwendung kann abhängig vom RAD Server-Benutzer oder der RAD Server-Gruppe autorisiert werden. |
{"users": ["username1", "username2"]}
|
Autorisiert einen RAD Server-Benutzer anhand des Feldes username. |
{"users": ["userid1", "userid2"]}
|
Autorisiert einen RAD Server-Benutzer anhand des Feldes userid. |
{"users": ["*"]}
|
Autorisiert alle RAD Server-Benutzer. |
{"groups": ["groupname1", "groupname2"]}
|
Autorisiert alle RAD Server-Benutzer, die einer RAD Server-Gruppe angehören. |
{"groups": ["*"]}
|
Autorisiert alle RAD Server-Benutzer in allen RAD Server-Gruppen. |
Im folgenden Beispiel werden alle Methoden in der Ressource Users als privat festgelegt, außer für die RAD Server-Endpunkte LoginUser und SignupUser:
Users={"public": false}
Users.LoginUser={"public": true}
Users.SignupUser={"public": true}
Im folgenden Beispiel werden alle Methoden in der benutzerdefinierten RAD Server-Ressource Resource1 für alle RAD Server-Benutzer in der Gruppe group1 verfügbar gemacht:
Resource1={"groups": ["group1"]}
Erstellen und ändern Sie die Zugriffsregeln in der Konfigurationsdatei der RAD Server Engine.
Im Protokoll im Fenster der RAD Server Engine können Sie die erstellten Zugriffsregeln anzeigen (als RegACL-Eintrag).
RAD Server-Benutzerauthentifizierung
Verwenden Sie die folgenden Header-Parameter für die verschiedenen Authentifizierungsoptionen:
Authentifizierung mit dem MasterSecret-Schlüssel von RAD Server
X-Embarcadero-Master-Secret=<value>
Authentifizierung mit dem Application Secret-Schlüssel von RAD Server
X-Embarcadero-App-Secret=<value>
RAD Server-Benutzerauthentifizierung
X-Embarcadero-Session-Token=<value> X-Embarcadero-App-Secret=<value>
X-Embarcadero-App-Secret
ist optional. Um ein X-Embarcadero-Session-Token
zu erhalten, muss eine Client-Anwendung den Endpunkt "users/login", wie unten beschrieben, verwenden:
- Der Client führt eine Anmeldeanforderung aus:
POST http://localhost:8080/users/login HTTP/1.1 {"username":"User1","password":"User1pass"} - Der Server antwortet:
HTTP/1.1 201 Created {"username":"User1","_id":"04C3B621-A056-49CF-8C56-D18E8363F58E","_meta":{"creator":"04C3B621-A056-49CF-8C56-D18E8363F58E","created":"2018-05-04T09:05:54.000Z"},"sessionToken":"d7bdc5523d04ecab7a35c1df53a7077d","sessionTokenExpiry":"2023-10-02T11:41:03.281Z"}Hinweis: Die Gültigkeitsdauer des Sitzungs-Token wird von Parametern in der emsserver.ini-Datei gesteuert: SessionInactivityTimeout und SessionLiveTimeout. Weitere Informationen finden Sie unter Beschränkungen der RAD Server Engine. - Der Client ruft den Endpunkt auf:
GET http://localhost:8080/test HTTP/1.1 X-Embarcadero-Session-Token: d7bdc5523d04ecab7a35c1df53a7077d - Der Server antwortet:
HTTP/1.1 200 OK "test" - Das Serverprotokoll zeigt, dass der Benutzer in der zweiten Anforderung identifiziert wurde:
{"Request":{"Resource":"Users","Endpoint":"LoginUser","Method":"POST","User":"(blank)","Time":"04.05.2018 13:12:51","Thread":3568}} {"Request":{"Resource":"test","Endpoint":"Get","Method":"GET","User":"04C3B621-A056-49CF-8C56-D18E8363F58E","Time":"04.05.2018 13:12:55","Thread":3568}}
Steuern des Zugriffs auf RAD Server-Ressourcen und -Endpunkte
Es gibt zwei Arten, den Zugriff auf Ressourcen und Endpunkte durch einen RAD Server-Benutzer oder eine RAD Server-Client-Anwendung zu steuern.
Ändern der Konfigurationsdatei der RAD Server Engine
Mit der Konfigurationsdatei der RAD Server Engine (Datei emsserver.ini) können Sie die Autorisierung per Ressource und Endpunkt konfigurieren.
Konfigurieren Sie die MasterSecret- oder die AppSecret-Schlüssel oder erstellen Sie neue Zugriffsregeln für die RAD Server-Ressourcen und -Endpunkte
Programmseitige Steuerung
Sie können neue Endpunkte (Erweitern der RAD Server Engine) erstellen und Code hinzufügen, der den Zugriff auf bestimmte RAD Server-Endpunkte verhindert. Im Code können Sie überprüfen, ob die Anforderung von einem bestimmten RAD Server-Benutzer oder von einem RAD Server-Benutzer in einer bestimmten RAD Server-Gruppe stammt.
Wenn der in der Anforderung bezeichnete RAD Server-Benutzer nicht auf den Endpunkt zugreifen darf, sollte die benutzerdefinierte Ressource eine Exception auslösen (um anzugeben, dass die Anforderung nicht autorisiert ist).