Aller directement à la fin des métadonnées
Aller au début des métadonnées

Vous regardez une version antérieure (v. /wiki/spaces/PUBLIC/pages/3928981562/API+-+S+curisation+et+contr+le+d+acc+s) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 3) afficher la version suivante »

Contrôle d’accès

Abner Evane => Faire un diagramme d’activité avec la chaine de filtre , les securedAction et les ressourceFilter

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

@MfaProtected()

AUTHENTICATED

WORKFLOW

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

RESOURCE

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

RESOURCE

@ResourceFilter

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

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 :

  • @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 s'applique obligatoirement lorsque l'on utilise @ResourceFilter ou @MfaProtected() 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.

  • @ResourceFilter(XXXXXXXXX.class) : Cette annotation défini l’accès a des groupes particuliers d’utilisateurs.

    • SuperAdminFilter.class

    • AdminFilter.class

    • RoleFilter.class

    • LinkRoleGroupFilter.class

    • RoleGroupFilter.class

    • ApplicationFilter.class

    • AdmlOfStructure.class

    • WidgetLinkFilter.class

    • MessageOwnerFilter.class

    • VisiblesFilter.class

    • MessageUserFilter.class

    • MultipleMessageUserFilter.class

    • MessageUserFilter.class

    • FoldersFilter.class

    • AdmlOfStructureOrClassOrTeachOfUser.class

    • AdmlOfStructuresByExternalId.class

    • TeacherOfClass.class

    • AdminStructureFilter.class

    • UserInStructure.class

    • UserAccessOrVisible.class

    • TeacherOfUser.class

    • AnyAdminOfUser.class

    • AddFunctionFilter.class

    • UserAccessOrVisible.class

    • RelativeStudentFilter.class

    • AdmlOfUser.class

    • AdmlOfTwoUsers.class

    • AdmlOfStructuresByUAI.class

  • @MfaProtected() : Cette annotation permet d'ajouter un filtre supplémentaire qui exige l'authentification à deux facteurs pour les points d'accès (endpoints).

  • Aucune étiquette