Vous découvrez Auth0? Découvrez comment fonctionne Auth0 et apprenez-en davantage sur l’implémentation de l’authentification et de l’autorisation des API à l’aide du framework OAuth 2.0.
Configurer les API Auth0
Créer une API
Dans la section APIs du tableau de bord Auth0, cliquez sur Create API. Saisissez un nom et un identifiant pour votre API, par exemplehttps://quickstarts/api. Vous utiliserez ensuite cet identifiant comme audience lors de la configuration de la vérification du jeton d’accès. Laissez Signing Algorithm à RS256.

Définir les permissions
Les permissions vous permettent de définir comment les ressources peuvent être consultées au nom de l’utilisateur à l’aide d’un jeton d’accès donné. Par exemple, vous pourriez choisir d’accorder un accès en lecture à la ressourcemessages si les utilisateurs ont le niveau d’accès Manager, et un accès en écriture à cette ressource s’ils ont le niveau d’accès administrateur.
Vous pouvez définir les permissions autorisées dans la vue Permissions de la section APIs de l’Auth0 Dashboard.

Cet exemple utilise le scope
read:messages.- Comment vérifier la présence d’un JSON Web Token (JWT) dans l’en-tête
Authorizationd’une requête HTTP entrante. - Comment vérifier si le jeton est valide à l’aide du JSON Web Key Set (JWKS) de votre compte Auth0. Pour en savoir plus sur la validation des jetons d’accès, consultez Valider les jetons d’accès.
Intégration de votre API backend PHP
Créons un exemple d’application qui utilise une API backend écrite en PHP pour autoriser un jeton signé par Auth0. Nous adopterons ici une approche simple, adaptée au format de cette documentation. Cela dit, consultez l’application Quickstart sur GitHub pour un exemple plus complet.Installation du client HTTP et des fabriques de messages
Le SDK Auth0 PHP prend en charge de nombreuses normes PHP-FIG afin d’offrir une interopérabilité maximale avec l’architecture de votre projet, mais deux d’entre elles sont particulièrement importantes : PSR-17 et PSR-18. Ces normes vous permettent de « brancher » les composants réseau de votre choix pour gérer la messagerie et les requête. Vous devrez installer des bibliothèques compatibles dans votre projet pour que le SDK puisse les utiliser. Guzzle est la bibliothèque réseau la plus répandue pour PHP, bien qu’il en existe plusieurs autres dans la communauté PHP. Utilisons Guzzle pour cet exemple d’application :Installation du SDK PHP
L’Auth0 PHP SDK requiert Composer, un outil de gestion des dépendances en PHP. Composer vous permet de déclarer les bibliothèques dont votre projet dépend et les installe pour vous. Assurez-vous que Composer est installé et accessible à partir de votre shell avant de continuer. Exécutez la commande shell suivante dans le répertoire de votre projet pour installer l’Auth0 PHP SDK :vendor dans votre projet et téléchargera toutes les dépendances nécessaires pour utiliser l’Auth0 PHP SDK. Cela créera aussi un fichier vendor/autoload.php, utilisé dans l’exemple pour charger toutes les classes nécessaires au bon fonctionnement de votre application. Il est important d’inclure ce fichier de chargement automatique dans votre projet pour que le SDK fonctionne.
Configurer le SDK
Pour commencer, créons un fichier.env à la racine du répertoire de votre projet pour y stocker la configuration de notre application exemple, puis renseignons les variables d’environnement :
Comme PHP ne peut pas lire à lui seul notre fichier .env, nous allons installer une bibliothèque pour nous y aider. Même si nous utiliserons une bibliothèque précise pour les besoins de notre application exemple, n’importe quel chargeur « dotenv » conviendra dans une application réelle. À partir du répertoire de notre projet, exécutons la commande shell suivante pour installer la bibliothèque :
index.php, et configurons une instance de l’Auth0 PHP SDK pour notre application d’exemple :
Authentifier l’utilisateur
Pour cet exemple d’application, nous nous concentrons sur l’autorisation. Il existe de nombreuses façons d’authentifier vos utilisateurs avant qu’ils n’accèdent à votre API backend pour l’autorisation, par exemple en utilisant la bibliothèque SPA.js d’Auth0. Cette approche est présentée dans ce projet Github qui accompagne l’application Quickstart. Quelle que soit l’approche choisie, pour fonctionner, cet exemple d’application s’attend à ce que vous lui transmettiez votre jeton d’accès au moyen d’un paramètre de requête ou d’un en-tête.Autoriser un jeton d’accès
D’abord, nous devons extraire le JSON Web Token (JWT) de la requête HTTP entrante. Recherchons un paramètre?token dans une requête GET, ou un en-tête HTTP_AUTHORIZATION ou Authorization.