API REST : Sécurisation de /createuser par structure
Avoir la possibilité de rajouter un niveau de sécurisation de l'appel à l'endpoint /createuser par structure.
C'est à dire qu'en plus de la sécurisation par Api Key, on doit avoir la possibilité dans les settings d'associer une Api Key à une ou plusieurs structure. Lors de la création de l'utilisateur, si l'Api Key ne match pas la structure de l'utilisateur à créer, la création devient impossible et génère une erreur de droits.
Cette configuration doit être totalement optionnelle, et dans le cas ou rien n'est défini pour l'Api Key, l'appel doit fonctionner comme actuellement.
Si cela simplifie le développement, on peut accoder le fait que les Api Key ne seront associées qu'à des structure de niveau racine. Il faut par contre bien vérifier que si l'utilisateur est créé dans une sous structure, si les droits sont accordés à une structure parente l'appel API doit fonctionner.
Voici un exemple de settings possible :
"createUserApiKeys": ["createuser-password1", "createuser-password2", "createuser-password3"],
"createUserApiKeysByStructures": {
"createuser-password1": ["Structure 1", "Structure 3"],
"createuser-password2": ["Structure 2"]
}
Pour que ce soit fonctionnel :
- toutes les Api Keys définies dans "createUserApiKeysByStructures" doivent être dans "createUserApiKeys";
- si une Api Key est dans "createUserApiKeys" mais pas dans "createUserApiKeysByStructures", il n'y a alors pas de restriction;
- dans l'exemple, l'Api Key "createuser-password1" donne le droit de créer des utilisateurs dans les structures "Structure 1" et "Structure 3" ainsi que toutes les structures enfants de ces deux structures;
- l'Api Key "createuser-password3" permet de créer des utilisateurs dans n'importe quelle structure