Authentification et autorisation
Deux mots souvent confondus, qui répondent pourtant à deux questions complètement différentes.
Avant de créer votre première application, au guide 22 de ce parcours, il faut comprendre deux notions qui vont revenir sans cesse : l'authentification et l'autorisation. Elles se ressemblent par leur nom, mais répondent à des questions très différentes.
Authentification : « qui es-tu ? »
L'authentification vérifie l'identité de celui qui fait une demande. Quand votre application communique avec l'Admin API de Shopify pour une boutique donnée, Shopify a besoin de savoir, avec certitude, quelle application fait cette demande, et pour quelle boutique précise. Sans authentification valide, une requête est simplement refusée, avant même que la question de savoir ce qu'elle a le droit de faire ne se pose.
Vous avez déjà pratiqué un mécanisme d'authentification comparable, sans le savoir sous ce nom, en vous connectant à Git & GitHub, ou en autorisant Shopify CLI à accéder à votre compte au guide 6 de ce parcours : dans les deux cas, un jeton d'accès a été généré après une connexion réussie, et c'est lui qui prouve votre identité pour les requêtes suivantes, sans avoir à ressaisir un mot de passe à chaque fois.
Autorisation : « que peux-tu faire ? »
L'autorisation intervient après l'authentification. Une fois l'identité confirmée, Shopify vérifie ce que cette identité précise a le droit de faire : peut-elle lire les produits ? Peut-elle aussi les modifier ? Peut-elle accéder aux commandes, ou aux informations clients ? C'est exactement le rôle des scopes, présentés en détail au prochain guide de ce parcours.
Une analogie pour fixer la différence
Imaginez un badge d'accès à un bâtiment. L'authentification, c'est la vérification de votre badge à l'entrée : ce badge est-il valide, correspond-il bien à une personne connue ? L'autorisation, c'est ce que ce badge précis permet d'ouvrir une fois à l'intérieur : certaines portes s'ouvrent, d'autres restent fermées, selon les droits associés à ce badge précis, pas à toutes les personnes qui entrent dans le bâtiment.
Comment Shopify orchestre les deux
Quand un marchand installe votre application sur sa boutique, un parcours d'autorisation se déclenche : le marchand voit précisément quelles permissions votre application demande, et doit explicitement les accepter avant que l'installation ne se termine. Une fois acceptée, Shopify délivre un jeton d'accès, propre à cette boutique et à cette application, qui combine les deux notions : ce jeton prouve l'identité de votre application (authentification) et porte avec lui les permissions accordées (autorisation).
Une erreur de débutant fréquente consiste à croire qu'une fois authentifiée, une application peut tout faire sur une boutique. C'est faux : chaque action reste soumise aux permissions explicitement accordées. Une application authentifiée mais sans la permission de lire les commandes se verra refuser toute requête vers les données de commande, même si son identité est parfaitement valide.
Vérifiez que vous avez compris
Votre application est correctement authentifiée auprès d'Atelier Lumière, mais elle n'a jamais demandé la permission de lire les informations clients. Une requête de votre application vers les données clients va-t-elle réussir ?
Non. L'authentification confirme uniquement l'identité de votre application, pas ce qu'elle a le droit de faire. Sans la permission explicite correspondante, accordée lors de l'installation, cette requête sera refusée, quelle que soit la validité de l'identité de l'application.