Sécuriser Apigee avec Auth0.

Si vous utilisez Apigee Edge pour développer et gérer vos API de services dorsaux, vous pouvez utiliser Auth0 pour sécuriser l’accès à vos proxies API.

Prérequis

Avant de commencer, vous allez devoir :

  1. Avoir un proxy API Apigee Edge qui doit être sécurisé. Pour en savoir plus, lisez l’article Commencer d’Apigee.

  2. S’inscrire pour un compte avec Auth0.

Le processus de création de votre proxy API ne s’inscrit pas dans le cadre de cet article. Au lieu de cela, nous nous concentrerons sur la sécurisation d’un proxy API que vous avez déjà en utilisant Auth0.

Créer une API personnalisée.

Tout d’abord, enregistrez votre proxy API Apigee Edge en utilisant le Dashboard. Auth0 doit reconnaître Apigee comme une audience pour s’assurer que tous les jetons d’accès émis le sont avec la bonne audience. L’utilisateur s’authentifie auprès d’Auth0 via l’application, et l’application spécifie cette valeur audience pour s’assurer que le jeton d’accès possède les permissions adéquates pour l'audience fournie.

Vous devez faire ce qui suit :

  1. Fournir un nom pour votre API (par exemple : apigee).

  2. Fournir un identifiant pour votre API urn:apigee:target:api

  3. Choisir un algorithme de signature : RS256 (Par défaut)

Lorsque vous enregistrez votre proxy API Apigee Edge, Auth0 crée également une application Communication entre machines en votre nom et lui donne un nom correspondant à l’API que vous avez enregistrée. Vous pouvez utiliser cette application pour les tests; elle est automatiquement configurée pour être autorisée à appeler votre API.

Notez les variables de l’application de test.

Passez à l’application de test créée lors de l’enregistrement de votre API et notez les variables qui ont été définies pendant le processus d’enregistrement de votre API et de création de l’application de communication entre machines associée. Vous en aurez besoin pour les étapes suivantes de ce tutoriel.

  1. Accédez à Auth0 Dashboard > Applications, puis cliquez sur le nom de votre application de test.

  2. Faites défiler vers le bas et notez les variables suivantes :

    • Audience de l'API

    • Domaine Auth0

    • ID client

    • URL de rappel autorisées : Les URL vers lesquelles l’utilisateur peut être redirigé après l’authentification. Vous pouvez spécifier plusieurs URL en les séparant par des virgules. (Cela est généralement fait pour gérer différents environnements où chacun a besoin de ses propres redirections.)

Mettre en œuvre le Flux des identifiants client

Vous êtes désormais prêt à mettre en œuvre le Flux des identifiants client pour demander les jetons d’accès que vous pouvez fournir à Apigee Edge. Notez que dans ce scénario, vous utiliserez le Flux des identifiants client, car vous utilisez Apigee avec vos API de services dorsaux, ce qui représente une application Machine-Machine (M2M). D’autres scénarios peuvent nécessiter l’utilisation de flux différents.

Pour apprendre à vous connecter et obtenir un jeton d’accès qui peut être utilisé pour appeler Apigee Edge, consultez Appeler l’API en utilisant le Flux des identifiants client.

Valider le jeton d’accès

Une fois que vous avez demandé et reçu un jeton d’accès d’Auth0, vous pourrez l’utiliser pour appeler le proxy API que vous avez configuré avec Edge.

Lorsque vous utilisez votre jeton d’accès, la première chose que fera Apigee Edge est de vérifier le jeton.

Les jetons d’accès Auth0 sont des jetons Web JSON (JWT), vous pouvez donc tirer parti de la politique de vérification JWT d’Apigee Edge pour cela. Pour en savoir plus, lisez l’article Politique de vérification JWT signée avec l’algorithme RS256.

Apigee Edge vérifiera le jeton avant que quoi que ce soit d’autre ne se produise; si le jeton est rejeté, alors tout le traitement s’arrêtera et Edge renverra une erreur au client.

Tests

Pour tester votre mise en œuvre, effectuez un appel HTTP POST à Apigee Edge en incluant le jeton d’accès émis par Auth0 dans l’en-tête de l’appel. Vous pouvez apprendre à le faire en consultant l’article d’Apigee intitulé Appeler l’API protégée .

Lorsque vous recevez une réponse favorable, extrayez le jeton et examinez-le pour vérifier l’inclusion des demandes requises/demandées des utilisateurs.