
Fonctionnalité :
Contrôle d'accès
Contrôle d'accès
L'endpoint GraphQL, qui peut retourner n'importe quelle donnée accessible via le schéma, pourrait potentiellement permettre à des acteurs malveillants de récupérer des informations privées. Nous devons donc mettre en place des mesures de sécurité pour protéger les données.
Contrôle d'accès
Avec les listes de contrôle d'accès, nous pouvons définir qui peut accéder à chaque opération, champ et directive du schéma :
- Désactiver l'accès pour tout le monde
- Accorder l'accès si l'utilisateur est connecté ou déconnecté
- Accorder l'accès si l'utilisateur possède un certain rôle
- Accorder l'accès si l'utilisateur possède une certaine capacité
- Accorder l'accès si le visiteur provient d'une adresse IP ou d'une plage d'adresses IP

Schéma public/privé
Que doit-il se passer lorsqu'un utilisateur sans accès à un champ ou une directive du schéma tente d'y accéder ?
Avec le mode API public/privé, nous pouvons contrôler le comportement souhaité :
Dans l'API publique, les champs du schéma sont exposés, et lorsque la permission n'est pas satisfaite, l'utilisateur reçoit un message d'erreur décrivant pourquoi la permission a été refusée.
Dans l'API privée, le schéma est personnalisé pour chaque utilisateur, ne contenant que les champs disponibles pour cette personne ; ainsi, en tentant d'accéder à un champ interdit, le message d'erreur indique que le champ n'existe pas.
