Ce guide explique comment intégrer Auth0 à n’importe quelle API Python, nouvelle ou ancienne, développée avec Flask.Si vous n’avez pas encore créé d’API dans votre Auth0 Dashboard, vous pouvez utiliser le sélecteur interactif pour créer une nouvelle API Auth0 ou sélectionner une API existante qui représente le projet avec lequel vous souhaitez vous intégrer.Vous pouvez également lire notre guide de démarrage qui vous aide à configurer votre première API via Auth0 Dashboard.Toute API dans Auth0 est configurée à l’aide d’un identificateur d’API que votre code d’application utilisera comme Audience (Public) pour valider le jeton d’accès.
Vous ne connaissez pas Auth0? Découvrez Auth0 et l’implémentation de l’authentification et de l’autorisation d’API en utilisant le cadre d’applications OAuth 2.0.
1
Définir les autorisations
Les autorisations vous permettent de définir comment les ressources peuvent être accessibles au nom de l’utilisateur avec un jeton d’accès en particulier. Par exemple, vous pouvez choisir d’accorder un accès en lecture à la ressource ![Auth0 Dashboard> Applications > APIs (API) > [Specific API (API précise)] > Onglet Permissions (Autorisations)](https://mintlify.s3.us-west-1.amazonaws.com/docs-dev/images/fr-ca/cdy7uua7fh8z/1s3Yp5zqJiKiSWqbPSezNO/677a3405b2853f5fdf9e42f6e83ceba7/Quickstarts_API_-_French.png)
messages
si les utilisateurs ont le niveau d’accès gestionnaire et un accès en écriture à cette ressource s’ils ont le niveau d’accès administrateur.Vous pouvez définir les autorisations autorisées dans la vue Permissions (Autorisations) de la section APIs (API) d’Auth0 Dashboard.![Auth0 Dashboard> Applications > APIs (API) > [Specific API (API précise)] > Onglet Permissions (Autorisations)](https://mintlify.s3.us-west-1.amazonaws.com/docs-dev/images/fr-ca/cdy7uua7fh8z/1s3Yp5zqJiKiSWqbPSezNO/677a3405b2853f5fdf9e42f6e83ceba7/Quickstarts_API_-_French.png)
Cet exemple utilise la permission
read:messages
.2
Installer des dépendances
Ajoutez les dépendances suivantes à votre fichier
requirements.txt
:3
Créer le validateur JWT
Nous allons utiliser une bibliothèque appelée Authlib pour créer un ResourceProtector, qui est un type de Flask decorator qui protège nos ressources (routes API) avec un validateur donné.Le validateur validera le jeton d’accès que nous transmettons à la ressource en vérifiant qu’il a une signature et des demandes valides.Nous pouvons utiliser le validateur
JWTBearerTokenValidator
d’AuthLib avec quelques ajustements pour nous assurer qu’il est conforme à nos exigences de validation des jetons d’accès.Pour créer notre Auth0JWTBearerTokenValidator
, nous devons lui transmettre notre domain
et notre audience
(Identificateur API). Il obtiendra alors la clé publique nécessaire pour vérifier la signature du jeton et la transmettra à la classe JWTBearerTokenValidator
.Nous remplacerons ensuite les claims_options
de la classe pour nous assurer que les demandes d’échéance, de public et d’émission du jeton sont validées selon nos exigences.4
Créer une application Flask
Ensuite, nous allons créer une application Flask avec 3 routes API :
Fournir le jeton d’accès comme un en-tête
/api/public
Un point de terminaison public qui ne nécessite aucune authentification./api/private
Un point de terminaison privé qui nécessite un jeton d’accès JWT valide./api/private-scoped
Un point de terminaison privé qui nécessite un jeton d’accès JWT valide contenant lascope
donnée.
require_auth
, qui est un ResourceProtector
qui utilise le Auth0JWTBearerTokenValidator
que nous avons créé précédemment.Pour créer Auth0JWTBearerTokenValidator
, nous devons lui transmettre le domaine de notre locataire et l’identificateur de l’API que nous avons créée précédemment.Le decorator require_auth
sur la route private_scoped
prend en charge un argument supplémentaire "read:messages"
, qui vérifie la permission du jeton d’accès que nous avons créé précédemment.Faire un appel à votre API
Pour appeler votre API, vous avez besoin d’un jeton d’accès. Vous pouvez obtenir un jeton d’accès à des fins de test dans la vue Test dans vos API settings (Paramètres API).![Auth0 Dashboard> Applications > API > [API specifique] > Onglet Test](https://mintlify.s3.us-west-1.amazonaws.com/docs-dev/images/fr-ca/cdy7uua7fh8z/6jeVBuypOGX5qMRXeJn5ow/8aa621c6d95e3f21115493a19ab05f7a/Quickstart_Example_App_-_API.png)
Authorization
dans vos demandes.Étapes suivantes
Beau travail! Si vous en êtes arrivé là, vous devriez avoir la connexion, la déconnexion et les informations de profil utilisateur actives dans votre application.Cela conclut notre tutoriel de démarrage rapide, mais il y a tellement plus à explorer. Pour en savoir plus sur ce que vous pouvez faire avec Auth0, consultez :- Auth0 Dashboard : apprenez à configurer et gérer votre locataire et vos applications Auth0
- Trousse SDK auth0-python : explorez en détail la trousse SDK utilisée dans ce tutoriel
- Auth0 Marketplace : découvrez des intégrations que vous pouvez activer pour étendre les fonctionnalités d’Auth0