Autorisation du moteur RAD Server
Remonter à Moteur RAD Server (serveur EMS)
La fonctionnalité Autorisation du moteur RAD Server vous permet d'autoriser ou de refuser l'accès à une ressource RAD Server ou à un point de terminaison RAD Server donné dans une requête HTTP.
L'autorisation dépend des informations d'identification utilisées dans la requête HTTP envoyée au moteur RAD Server (serveur EMS).
Par défaut, la ressource et les points de terminaison RAD Server sont publics.
Il existe trois genres d'information d'identification différents dans RAD Server :
- Clé Secret maître (Mastersecret). Cette information d'identification permet à une requête HTTP d'accéder à tous les points de terminaison RAD Server dans toutes les ressources RAD Server de votre moteur RAD Server (serveur EMS).
- Utilisateurs. Cette information d'identification identifie un utilisateur RAD Server particulier. L'accès aux points de terminaison et aux ressources est limité à ceux autorisés pour l'utilisateur ou le groupe auquel l'utilisateur appartient.
- Secret d'application (Aplication Secret). Cette information d'identification permet d'accéder aux points de terminaison qui sont autorisés pour toutes les requêtes HTTP.
Sommaire
Informations d'identification pour l'autorisation d'accès à RAD Server
Authentification de la clé Secret maître (MasterSecret) RAD Server
La clé Secret maître RAD Server (MasterSecret) vous autorise à disposer d'un accès complet à toutes les données du serveur RAD Server stockées dans la base de données RAD Server.
Utilisez cette clé Secret maître RAD Server pour les tâches administratives. Vous pouvez utiliser la clé Secret maître RAD Server pour disposer d'un accès à toutes les ressources RAD Server dans le moteur RAD Server (serveur EMS).
Modifiez la clé MasterSecret dans le fichier de configuration du moteur RAD Server.
Authentification de la clé Secret d'app (AppSecret) RAD Server
La clé Secret d'app RAD Server (AppSecret) vous autorise à disposer d'un accès aux points de terminaison autorisés à partir d'une application client RAD Server.
Modifiez la clé AppSecret dans le fichier de configuration du moteur RAD Server.
Règles d'accès à RAD Server
Vous pouvez créer des règles d'accès pour configurer l'autorisation d'accès à une ressource RAD Server ou un point de terminaison RAD Server particuliers.
Vous pouvez définir une nouvelle règle d'accès pour les ressources de l'API administrative RAD Server (comme les utilisateurs RAD Server et les groupes RAD Server) ou pour une ressource RAD Server personnalisée.
Vous pouvez spécifier les règles d'accès avec des paramètres (comme une chaîne JSON) pour :
- Une ressource. Les paramètres de ressource s'appliquent à tous les points de terminaison dans cette ressource RAD Server.
- Un point de terminaison particulier. Les paramètres du point de terminaison redéfinissent les paramètres pour la ressource.
Vous pouvez modifier les attributs JSON suivants pour une ressource RAD Server ou un point de terminaison de ressource RAD Server :
| Attribut JSON | Description |
|---|---|
{"public": true}
|
Autorise toute requête. |
{"public": false}
|
Une application client RAD Server peut être autorisée en fonction de l'utilisateur RAD Server ou du groupe RAD Server. |
{"users": ["username1", "username2"]}
|
Autorise un utilisateur RAD Server par le champ username. |
{"users": ["userid1", "userid2"]}
|
Autorise un utilisateur RAD Server par le champ userid. |
{"users": ["*"]}
|
Autorise tous les utilisateurs RAD Server. |
{"groups": ["groupname1", "groupname2"]}
|
Autorise tous les utilisateurs RAD Server qui appartiennent à un groupe RAD Server. |
{"groups": ["*"]}
|
Autorise tous les utilisateurs RAD Server dans tous les groupes RAD Server. |
L'exemple suivant rend toutes les méthodes de la ressource Users privées, à l'exception des points de terminaison RAD Server LoginUser et SignupUser :
Users={"public": false}
Users.LoginUser={"public": true}
Users.SignupUser={"public": true}
L'exemple suivant rend toutes les méthodes de la ressource RAD Server personnalisée Resource1 disponibles pour tous les utilisateurs RAD Server dans le groupe group1 :
Resource1={"groups": ["group1"]}
Créez et modifiez les règles d'accès dans le fichier de configuration du moteur RAD Server.
Dans le journal de la fenêtre du moteur RAD Server, vous pouvez voir les règles d'accès créées (sous la forme d'une entrée RegACL).
Authentification des utilisateurs RAD Server
Utilisez les paramètres d'en-tête suivants pour les différentes options d'authentification :
Authentification de la clé Secret maître (MasterSecret) RAD Server
X-Embarcadero-Master-Secret=<value>
Authentification de la clé Secret d'app (AppSecret) RAD Server
X-Embarcadero-App-Secret=<value>
Authentification des utilisateurs RAD Server
X-Embarcadero-Session-Token=<value> X-Embarcadero-App-Secret=<value>
X-Embarcadero-App-Secret est facultatif. Pour obtenir un X-Embarcadero-Session-Token, une application client doit utiliser le point de terminaison "users/login", comme décrit ci-dessous :
- Le client effectue une demande de connexion :
POST http://localhost:8080/users/login HTTP/1.1 {"username":"User1","password":"User1pass"} - Le serveur répond :
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"}Remarque: La durée de vie du token de session est contrôlée par les paramètres du fichier emsserver.ini : SessionInactivityTimeout et SessionLiveTimeout. Pour de plus amples informations, voir : Limites du moteur RAD Server. - Le client appelle le point de terminaison :
GET http://localhost:8080/test HTTP/1.1 X-Embarcadero-Session-Token: d7bdc5523d04ecab7a35c1df53a7077d - Le serveur répond :
HTTP/1.1 200 OK "test" - Le journal du serveur indique que l'utilisateur est identifié dans la seconde requête :
{"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}}
Contrôle de l'accès aux ressources et points de terminaison RAD Server
Il existe deux moyens de contrôler l'accès aux ressources et points de terminaison par un utilisateur RAD Server ou une application client RAD Server.
Modification du fichier de configuration du moteur RAD Server
Le fichier de configuration du moteur RAD Server (fichier emsserver.ini) peut être utilisé pour configurer l'autorisation par ressource et point de terminaison.
Configurez les clés MasterSecret ou AppSecret, ou créez de nouvelles règles d'accès pour les ressources et points de terminaison RAD Server.
Contrôle par programme
Vous pouvez créer une ressource personnalisée Extension du moteur RAD Server et ajouter du code empêchant l'accès à des points de terminaison RAD Server particuliers. Dans votre code, vous pouvez vérifier si la requête provient d'un utilisateur RAD Server particulier ou d'un utilisateur RAD Server d'un groupe RAD Server particulier.
Si l'utilisateur RAD Server identifié dans la requête n'est pas autorisé à accéder au point de terminaison, la ressource personnalisée doit déclencher une exception (pour indiquer que la requête n'est pas autorisée).