Modèle de contrôle d’accès
...
Il existe 3 types de contrôle d’accès à nos API . Ils sont décrits dans le tableau ci-dessous.Tous ces contrôles d’accès sont exécutés dans un chaîne de filtre HTTP
Type | Description | Configuration | Contrôle d’accès |
---|---|---|---|
| |||
| |||
| Permission d’accès à une procédure métier exposée sur une API (ex. les enseignants ont le droit de créer des devoirs dans le cahier de textes) | Console d’administration (par un administrateur d’établissement) | Présence de la permission (WORKFLOW) dans la session de l’utilisateur |
droit de partage | Partage d’accès à une ressource (consultation, commentaire, modification,gestion) | Fenêtre de partage (par le propriétaire d’une ressource) | Présence de l’utilisateur ou d’un de ses groupes dans la table de partage de la ressource |
| Droit d’accès spécifique pour couvrir les cas métiers particuliers | Implémentation d’un filtre de sécurité spécifique | Filtre de sécurité spécifique |
Annotations de sécurisation des
...
endpoints d’API
Pour sécuriser les API en suivant les règles applicatives, il existe plusieurs niveaux de filtres permettant de contrôler l'accès aux routes de l'API.En suivant cette logique, nous disposons de ces annotations :
Type | Spécification | Code (Exemple) | |||||
---|---|---|---|---|---|---|---|
@SecuredAction() | Permission d’accès à une procédure métier exposée sur une API (ex. les enseignants ont le droit de créer des devoirs dans le cahier de textes) |
| |||||
@ResourceFilter() | Partage d’accès à une ressource (consultation, commentaire, modification,gestion) |
| |||||
@MfaProtected() | Authentification à deux facteurs (MFA) : L'authentification à deux facteurs est un mécanisme de sécurité qui exige non seulement un mot de passe (ou une autre forme d'identification), mais aussi une deuxième forme d'authentification, souvent quelque chose que l'utilisateur possède physiquement, comme un téléphone dans notre cas. L'annotation @MfaProtected() est utilisée pour définir un filtre supplémentaire sur les points d'accès (endpoints) d'une application ou d'une API. Cela signifie que l'accès à ces points d'accès sera restreint et nécessitera une authentification à deux facteurs. |
|
@SecuredAction(type = ActionType.XXXXXXXX, value = "")
: Cette annotation est la plus important elle doit être ajouter sur toute route qui nécessite un sécurisation sans elle autres annotation de sécurité ne sont pas active.ActionType.RESOURCE
: Il s’agit du type de sécurisation appliqué sur la route.WORKFLOW
: Cet ActionType est activé par défaut, même sans spécifier la valeur ActionType. Il applique la sécurisation définie dans la console d'administration.RESOURCE
: Celui-ci il permet le partage d’accès à une ressource il s'applique obligatoirement lorsque l lorsqu'on utilise @ResourceFilter qui lui défini le scope des utilisateurs ayant accès a une ressource ou @MfaProtected() qui ajoute un couche de sécurisation afin de permettre le déclenchement des filtres dans le traitement des requêtes.AUTHENTICATED
: Il permet de vérifier la présence des cookies de connexion ainsi que l'état de connexion de l'utilisateur.
...