Jeton JWT dans l’en-tête POSTMAN

Je teste une implémentation de la sécurité basée sur JWT Token basée sur l’ article suivant. J’ai reçu avec succès un jeton du serveur de test. Je n’arrive pas à comprendre comment le programme Chrome POSTMAN REST Client peut envoyer le jeton dans l’en-tête.

postman screenshot

Mes questions sont les suivantes:

1) Est-ce que j’utilise le bon nom d’en-tête et / ou l’interface POSTMAN?

2) Dois-je baser le code 64 sur le jeton? Je pensais pouvoir renvoyer le jeton.

Pour la demande Nom de l’en-tête, utilisez simplement l’autorisation. Placez le porteur avant le jeton. Je viens de l’essayer et ça marche pour moi.

Autorisation: porteur TOKEN_STRING

Chaque partie du JWT est une valeur encodée en base64url.

Voici une image si ça aide 🙂

Facteur

Mettre à jour:

L’équipe du facteur a ajouté “Jeton porteur” à l’onglet “autorisation”: Facteur mis à jour

J’ajoute à cette question un petit conseil intéressant qui pourrait vous aider à tester JWT Apis.

C’est très simple en fait.

Lorsque vous vous connectez, dans votre Api (sharepoint terminaison de connexion), vous recevez immédiatement votre jeton et, comme @ mick-cullen, vous devez utiliser le JWT sur votre en-tête comme suit:

Authorization: Bearer TOKEN_STRING 

Maintenant, si vous souhaitez automatiser ou simplement simplifier votre vie, vos tests vous permettent d’enregistrer le jeton en tant que fichier global que vous pouvez appeler sur tous les autres points de terminaison en tant que:

 Authorization: Bearer {{jwt_token}} 

Sur Postman: Créez ensuite une variable globale dans postman comme jwt_token = TOKEN_STRING.

Sur votre sharepoint connexion: Pour le rendre utile, ajoutez au début de l’onglet Tests, ajoutez:

 var data = JSON.parse(responseBody); postman.clearGlobalVariable("jwt_token"); postman.setGlobalVariable("jwt_token", data.jwt_token); 

Je suppose que votre API retourne le jeton comme json sur la réponse comme suit: {“jwt_token”: “TOKEN_STRING”}, il peut y avoir une sorte de variation.

Sur la première ligne, vous ajoutez la réponse à la variable de données. Nettoyez votre global et assignez la valeur.

Donc, maintenant, vous avez votre jeton sur la variable globale, ce qui facilite l’utilisation de Authorization: Bearer {{jwt_token}} sur tous vos points de terminaison.

J’espère que cette astuce aide.


MODIFIER
Quelque chose à lire

A propos des tests sur Postman: exemples de tests

Ligne de commande: Newman

CI: intégration avec Jenkins

Bel article de blog: automatisation des tests d’api maître

J’ai eu le même problème dans Flask et après avoir essayé les 2 premières solutions identiques ( Authorization: Bearer ), et obtenu ceci:

 { "description": "Unsupported authorization type", "error": "Invalid JWT header", "status_code": 401 } 

J’ai réussi à le résoudre en utilisant:

 Authorization: jwt  

Je pense que cela pourrait faire gagner du temps aux personnes qui rencontrent la même chose.

Voici comment définir automatiquement ce jeton

Sur votre login / demande d’authentification

entrer la description de l'image ici

Ensuite, pour la page authentifiée

entrer la description de l'image ici

En quelque sorte, le facteur ne fonctionnait pas pour moi. J’ai dû utiliser une extension chrome appelée RESTED qui fonctionnait bien.

J’ai fait comme moplin mentionné. Mais dans mon cas, le service envoie le JWT dans les en-têtes de réponse, en tant que valeur sous la clé “Autorisation”.

 Authorization →Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpbWFsIiwiZXhwIjoxNDk4OTIwOTEyfQ.dYEbf4x5TGr_kTtwywKPI2S-xYhsp5RIIBdOa_wl9soqaFkUUKfy73kaMAv_c-6cxTAqBwtskOfr-Gm3QI0gpQ 

Ce que j’ai fait, c’est de créer une variable globale dans Postman as

clé-> jwt
valeur-> blahblah

dans la demande de connexion-> onglet Tests, append

 postman.clearGlobalVariable("jwt"); postman.setGlobalVariable("jwt", postman.getResponseHeader("Authorization")); 

dans d’autres demandes, sélectionnez l’onglet En-têtes et donnez

clé-> autorisation

valeur -> {{jwt}}

Pour les personnes qui utilisent le plug-in wordpress Advanced Access Manager pour ouvrir l’authentification JWT.

Le champ d’en-tête doit mettre l’ authentification au lieu de l’ autorisation

entrer la description de l'image ici

AAM l’a mentionné dans sa documentation ,

Remarque! AAM n’utilise pas l’en-tête d’autorisation standard car il est ignoré par la plupart des serveurs Apache. …


J’espère que ça aide quelqu’un! Merci pour les autres réponses m’a aidé beaucoup aussi !!