Tutoriel : Génération d'un jeton Web JSON (JWT)

Ce tutoriel explique comment définir et implémenter une définition d'API REST qui génère un jeton Web JSON (JWT).

A propos de ce tutoriel

Dans ce tutoriel, vous allez suivre les leçons suivantes :
  1. Génération d'un jeton Web JSON
  2. Test de l'API REST
Note : Le catalogue Sandbox doit être configuré pour utiliser soit DataPower® Gateway (v5 compatible), soit DataPower API Gateway, soit les deux. Voir Création et configuration des catalogues.

Génération d'un jeton Web JSON

Créez une API REST pour générer et renvoyer un jeton Web JSON (JWT).

Pour ajouter et définir cette API REST, procédez comme suit :
  1. Connectez-vous à API Manager.
  2. Dans la page de bienvenue, cliquez sur la vignette Développement d'API et de produits.

    Écran API Manager

  3. Cliquez sur Ajouter > API.

    Écran d'ajout d'API

  4. Veillez à ce que OpenAPI 3.0 est sélectionné.
  5. Sélectionnez New OpenAPI et cliquez sur Next.

    Sélectionner OpenAPI

  6. Entrez les informations appropriées pour créer une définition d'API REST.
    1. Dans le champ Titre, saisissez JWT.
    2. Les zones Nom et Chemin de base sont complétées automatiquement avec les termes jwt et /jwt, respectivement.
    3. Le champ Version se remplit automatiquement avec 1.0.0.

    Écran d'informations de base

  7. Cliquez sur Suivant.
  8. Dans la section Sécurisé, cliquez sur Suivant.

    API sécurisée

  9. Vous voyez la progression de la création de l'API. Lorsque l'opération est terminée, un récapitulatif s'affiche. Cliquez sur Modifier l'API.

    Nouveau résumé de l'API

  10. Dans la barre latérale de la page de conception, sélectionnez Chemins pour afficher l'écran Chemins.
  11. Cliquez sur Ajouter +.

    Page Chemins

  12. Dans le champ Chemin, entrez /gen.
  13. Cliquez sur Ajouter.

    Ajouter un chemin d'accès

  14. Faites défiler vers le bas. Dans la section Paramètres, cliquez sur Ajouter +.

    Ajouter des paramètres

    1. Saisissez iss-claim dans le champ Nom du paramètre.
    2. Sélectionnez le site header dans la liste Located In.
    3. Saisissez https://myidp.ibm.com dans le champ Description.
    4. Cochez la case Requis.
    5. Cliquez sur Ajouter.

      Chemin d'accès Paramètres

    6. Faites défiler vers le bas. Dans la section Schéma, cliquez sur Créer

      Ajouter un schéma

    7. Sélectionnez string dans la liste Type.
    8. Cliquez sur Ajouter.

      Ajouter une chaîne

  15. Après avoir créé le paramètre, cliquez sur Enregistrer.
  16. Pour ajouter un deuxième paramètre. Procédez comme suit :
    1. Dans la barre latérale de la page Design, sélectionnez Parameters sous le chemin /gen nouvellement créé.

      Barre latérale des paramètres

    2. Cliquez sur Ajouter +.

      Page des paramètres

    3. Saisissez aud-claim dans le champ Nom du paramètre.
    4. Sélectionnez header dans la liste Located In.
    5. Saisissez Enter ClientID1 dans le champ Description.
    6. Cochez la case Requis.
    7. Cliquez sur Ajouter.

      Chemin d'accès Paramètres

    8. Faites défiler vers le bas. Dans la section Schéma, cliquez sur Créer.

      Ajouter un schéma

    9. Sélectionnez string dans la liste Type.
    10. Cliquez sur Ajouter.

      Ajouter une chaîne

  17. Après avoir créé le deuxième paramètre, cliquez sur Enregistrer.
  18. Cliquez sur Composants > Réponses.
  19. Cliquez sur Ajouter.

    Page de réponses

  20. Le champ Nom de la réponse se remplit automatiquement avec 200.
  21. Saisissez 200 OK dans le champ Description.

    Ajouter un schéma

  22. Cliquez sur Ajouter.
  23. Après avoir créé la réponse, cliquez sur Enregistrer.
  24. Sélectionnez l'onglet Passerelle.
  25. Passez la souris sur le nœud de politique existant et cliquez sur l'icône de la corbeille pour le supprimer.

    Page de la passerelle

  26. Dans Actions, cliquez sur Définir une variable pour ajouter l'action à la chaîne de traitement. Un panneau de configuration s'ouvre automatiquement.
  27. Cliquez sur Ajouter une action.

    Ajout de l'action Set Variable

  28. Saisissez hs256-key dans le champ Set.
  29. Sélectionnez string dans la liste Type.
  30. Saisissez un JWK dans le champ Valeur. En voici un exemple : { "alg": "HS256", "kty": "oct", "use": "sig", "k": "o5yErLaE-dbgVpSw65Rq57OA9dHyaF66Q_Et5azPa-XUjbyP0w9iRWhR4kru09aFfQLXeIODIN4uhjElYKXt8n76jt0Pjkd2pqk4t9abRF6tnL19GV4pflfL6uvVKkP4weOh39tqHt4TmkBgF2P-gFhgssZpjwq6l82fz3dUhQ2nkzoLA_CnyDGLZLd7SZ1yv73uzfE2Ot813zmig8KTMEMWVcWSDvy61F06vs_6LURcq_IEEevUiubBxG5S2akNnWigfpbhWYjMI5M22FOCpdcDBt4L7K1-yHt95Siz0QUb0MNlT_X8F76wH7_A37GpKKJGqeaiNWmHkgWdE8QWDQ", "kid": "hs256-key" }

    Setvar propriétés

  31. Fermez le panneau des propriétés. Cliquez sur Sauvegarder.
  32. Dans Actions, cliquez sur Générer un JWT pour ajouter l'action à la ligne de flux de traitement après l'icône de définition de la variable. Un panneau de configuration s'ouvre automatiquement.
    Remarque : si le panneau Construire le flux d'assemblage n'est pas visible, cliquez sur + près de la variable définie pour afficher le panneau.

    Ajout de l'action JWT Generate

  33. Saisissez request.headers.iss-claim dans la zone Réclamation de l'émetteur.
  34. Saisissez request.headers.aud-claim dans la zone Réclamation du public.
  35. Saisissez hs256-key dans la zone Nom de variable de signature JWK.
  36. Sélectionnez HS256 dans la liste Cryptogrpahic Algorithm.

    JWT Générer des propriétés

  37. Fermez le panneau des propriétés. Cliquez sur Sauvegarder.
  38. Dans Actions, cliquez sur GatewayScript pour ajouter l'action sur la ligne du flux de traitement après l'icône Générer JWT. Un panneau de configuration s'ouvre automatiquement.
  39. Entrez le code suivant :
    var apim = require('apim');
    apim.setvariable('message.body',apim.getvariable('generated.jwt'));

    GatewayScript action ajoutée

    Note : Il se peut que l'avertissement suivant s'affiche lorsque vous ajoutez l'action GatewayScript à l'adresse suivante : This gatewayscript policy should not use the apim module which is only for migrating old APIs. Vous pouvez ignorer cet avertissement et continuer.
  40. Fermez le panneau des propriétés. Cliquez sur Sauvegarder.

Test de l'API REST

Remarque : en raison des restrictions liées au partage de ressources entre origines ( CORS ), l'outil de test d'assemblage ne peut pas être utilisé avec les navigateurs Chrome ou Safari sur la plateforme macOS Catalina.
Pour tester l'API REST, procédez comme suit :
  1. Cliquez sur Test.
    Remarque : vous ne pouvez pas tester l'API REST si vous n'avez configuré aucune passerelle pour le catalogue; un message d'erreur s'affiche alors dans l'onglet « Test ».Tester
  2. Cliquez sur Configuration de la cible et réglez la publication automatique sur Activé.
  3. Cliquez sur Enregistrer les préférences. L'état de l'API est indiqué comme étant en ligne dans l'onglet Test.
  4. Saisissez https://myidp.ibm.com dans le champ Value correspondant au paramètre iss-claim.
  5. Entrez ClientID1 dans le champ Value correspondant au paramètre aud-claim.
  6. Cliquez sur Envoyer.

    Page de test et bouton d'envoi

  7. La réponse contient le JWT généré.

    Résultat du test

Gestion de votre définition d'API

Maintenant que votre nouvelle API fonctionne correctement, vous pouvez la gérer. Pour afficher vos options immédiates, procédez comme suit.

  1. Cliquez sur Développer l'icône l'icône « Développement » dans la barre de navigation.

    Barre de navigation

  2. Cliquez sur l'icône Options L'icône de gestion située à côté de l'API JWT.

    Gérer l'API

  3. Sélectionnez Télécharger.

Tâches exécutées dans ce tutoriel

Dans ce tutoriel, vous avez effectué les activités suivantes :
  • Création d'une définition d'API qui génère un jeton Web JSON (JWT).
  • Test de la nouvelle API.