Ce tutoriel explique comment définir et implémenter une définition d'API REST qui génère un jeton Web JSON (JWT).
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 :
- Connectez-vous à API Manager.
- Dans la page de bienvenue, cliquez sur la vignette Développement d'API et de produits.

- Cliquez sur .

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

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

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

- 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- Saisissez hs256-key dans le champ Set.
- Sélectionnez string dans la liste Type.
- 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" }

- Fermez le panneau des propriétés. Cliquez sur Sauvegarder.
- 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.

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

- Fermez le panneau des propriétés. Cliquez sur Sauvegarder.
- 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.
- Entrez
le code suivant :
var apim = require('apim');
apim.setvariable('message.body',apim.getvariable('generated.jwt'));

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.
- 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 :
- 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 ».

- Cliquez sur Configuration de la cible et réglez la publication automatique sur Activé.
- Cliquez sur Enregistrer les préférences. L'état de l'API est indiqué comme étant en ligne dans l'onglet Test.
- Saisissez https://myidp.ibm.com dans le champ Value correspondant au paramètre iss-claim.
- Entrez ClientID1 dans le champ Value correspondant au paramètre aud-claim.
- Cliquez sur Envoyer.

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

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.
- Cliquez sur
l'icône « Développement » dans la barre de navigation.
- Cliquez sur l'icône Options
située à côté de l'API JWT.
- 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.