Résultats de recherche :

×

S'inscrire Contactez-Nous

Méthode d'authentification JWT pour API REST WordPress

L'authentification JWT pour les API REST est une méthode simple pour sécuriser les points de terminaison des API REST de WordPress. Au lieu de transmettre les identifiants à chaque requête, l'authentification JWT utilise un jeton sécurisé pour vérifier l'identité de l'utilisateur. Ainsi, seuls les utilisateurs ou applications autorisés peuvent accéder aux points de terminaison protégés des API REST. Le jeton JWT est généré à partir des identifiants de l'utilisateur WordPress et est hautement chiffré, ce qui garantit une sécurité renforcée sans compromettre l'accès.



Authentification de l'API REST pour WordPress

L'extension d'authentification REST API pour WordPress protège vos API REST contre les accès non autorisés. Elle propose plusieurs méthodes d'authentification : authentification de base, authentification par clé API, OAuth 2.0 et authentification JWT.

En savoir plus   

Qu'est-ce que l'authentification JWT pour WordPress ?

L'authentification JWT pour les API REST est une méthode simple pour sécuriser les points de terminaison des API REST de WordPress. Au lieu de transmettre les identifiants à chaque requête, l'authentification JWT utilise un jeton sécurisé pour vérifier l'identité de l'utilisateur. Ainsi, seuls les utilisateurs ou applications autorisés peuvent accéder aux points de terminaison protégés des API REST. Le jeton JWT est généré à partir des identifiants de l'utilisateur WordPress et est hautement chiffré, ce qui garantit une sécurité renforcée sans compromettre l'accès.

  • Connectez-vous à votre site WordPress en tant qu'administrateur.
  • Depuis le tableau de bord WordPress, allez dans Extensions, puis cliquez sur Ajouter.
  • Rechercher un Authentification API REST pour WP.
  • Cliquez sur « Installer maintenant » pour ajouter l'extension à votre site.
  • Après l'installation, cliquez sur Activer pour commencer à utiliser le plugin.


Si vous développez une application mobile ou web et avez besoin d'un contrôle d'accès aux API REST pour WordPress, l'authentification JWT pour API REST offre une solution sécurisée. Grâce à l'authentification JWT pour WordPress, vous pouvez définir des niveaux d'accès permettant aux utilisateurs disposant de droits spécifiques de créer ou de mettre à jour du contenu, tandis que les autres sont limités à la simple consultation des données.

  • L'utilisation de Authentification basée sur un jeton JWTLes points de terminaison de l'API REST sont protégés par des jetons d'accès JWT générés à partir d'identifiants utilisateur WordPress valides. En incluant le jeton JWT dans l'en-tête Authorization, votre application peut accéder en toute sécurité aux ressources protégées ou effectuer des actions basées sur les rôles. Authentification JWT pour les API REST.
  • Ces jetons sont sécurisés par des algorithmes de chiffrement tels que HSA ou RSA et expirent automatiquement après une période définie, renforçant ainsi la sécurité globale. Chaque jeton contient des informations utilisateur WordPress qui peuvent être décodées à l'aide d'une clé secrète ou d'un certificat, ce qui rend l'authentification JWT idéale pour la synchronisation des utilisateurs ou la création de comptes sur plusieurs systèmes.
  • Jetons d'actualisation JWT pour WordPress Permettez aux utilisateurs de renouveler leur session en toute sécurité sans avoir à se reconnecter. L'authentification par jeton JWT, combinée à l'authentification JWT pour WordPress, garantit un accès API sécurisé et une communication fluide et efficace entre votre application et WordPress.

  • Sécurisez les API REST avec l'authentification JWT pour WordPress
  • Méthode d'authentification JWT pour l'API REST WordPress utilisant JWT

    1. Une requête API REST pour WordPress est initiée avec les identifiants et paramètres requis afin de générer un jeton JWT via l'authentification JWT. Le jeton émis est sécurisé par une authentification basée sur le jeton JWT et chiffré à l'aide d'algorithmes standard tels que HS256 ou RSA pour garantir une protection renforcée des données.

    2. Pour les requêtes suivantes, l'appel à l'API REST permettant de récupérer des données ou d'effectuer des actions inclut le jeton JWT dans l' en-tête Authorization, sous forme de jeton Bearer . Grâce à l'authentification JWT pour l'API REST, l'extension valide le jeton avant de traiter la requête. Si le jeton est valide, l'accès à la ressource demandée est autorisé ; dans le cas contraire, une réponse d'erreur est renvoyée. Dans ce processus, l'extension d'authentification JWT pour WordPress gère à la fois la création et la vérification des jetons, garantissant ainsi la sécurité de chaque requête API.



Cas d'utilisation associé :

  • Comment effectuer des requêtes authentifiées JWT vers les points de terminaison de l'API REST pour WordPress ?
  • Authentification des API REST pour WooCommerce/WordPress à l'aide de JWT (JSON Web Token).



  • Dans le plugin, allez dans le Configurer les méthodes onglet dans la section de gauche.
  • Cliquez sur Authentification JWT comme méthode d'authentification API.
  • Méthode d'authentification JWT pour l'API REST WordPress
  • Sélectionnez le Type de génération de jeton . Par défaut, le HS256 L'algorithme et la clé secrète unique générée aléatoirement sont utilisés respectivement et cliquez Suivant dans le coin supérieur droit.
  • Afin de tester la fonctionnalité, remplissez le Nom d'utilisateur ( Ou : Nom d'épouse ) et Mot de passe champs pour un utilisateur existant.
  • Méthode d'authentification JWT pour l'API REST WordPress
  • Cliquez sur Récupérer le jeton Un jeton JWT (jwt_token) sera affiché dans la réponse ; vous pourrez copier sa valeur dans le presse-papiers pour effectuer une requête GET.
  • Collez le jeton JWT obtenu à l'étape 6.
  • Cliquez à nouveau Configuration du test et la réponse sera affichée à l'écran.
  • Cliquez sur Finition .
  • Méthode d'authentification JWT pour l'API REST WordPress
  • Dans le plugin, allez sur Configurer l'authentification API onglet et cliquez sur Authentification JWT comme méthode d'authentification API.
  • Sélectionnez le Algorithme de signature et Secret clientPar défaut, l'algorithme HS256 et une clé secrète générée aléatoirement sont utilisés respectivement.
  • Enfin, cliquez sur Enregistrer la configuration L'authentification JWT pour l'API REST sera donc activée.
  • Méthode d'authentification JWT pour l'API REST WordPress utilisant JWT
  • Ici, vous devrez effectuer deux appels API :

  • Pour obtenir le jeton JWT, vous devez effectuer un appel d'API REST au point de terminaison du jeton comme ci-dessous :
  • Request:POST https://<domain-name>/wp-json/api/v1/token
      Body:username = <wordpress username>
      password = <wordpress password>
    
      Sample curl Request Format-
      curl -d "username=<wordpress_username>&password=<wordpress_password>"
      -X POST http://<wp_base_url>/wp-json/api/v1/token
      

    Ce point de terminaison d'API est également appelé API d'authentification utilisateur ou point de terminaison d'API de connexion pour WordPress. Si nous envoyons une requête à ce point de terminaison avec les identifiants de l'utilisateur WordPress et si ces identifiants sont valides, une réponse positive contenant un jeton JWT sera renvoyée ; sinon, une réponse d'erreur sera affichée.

  • Jetez un coup d'œil au Réponse d'erreur pour obtenir le jeton JWT.
  • Une fois que vous avez obtenu le jeton JWT, vous pouvez l'utiliser pour demander l'accès aux API REST de WordPress, comme indiqué ci-dessous :
  • Request: GET  https://<domain-name>/wp-json/wp/v2/posts
      Header: Authorization : Bearer <JWT token>
    
      Sample curl Request Format-
      curl -H "Authorization:Bearer <jwt_token >"
      -X GET http://<wp_base_url>/wp-json/wp/v2/posts
      
  • NOTE: Le jeton ci-dessus est valable une heure par défaut et peut être personnalisé. Une fois expiré, il peut être généré à nouveau.
  • Jetez un coup d'œil au documentation développeur pour plus de détails.
  • Jetez un coup d'œil au Réponse d'erreur pour créer une API avec le jeton JWT.

Félicitations ! Vous avez configuré avec succès la méthode d’authentification JWT pour les appels d’API REST à l’aide de la méthode d’authentification d’API REST miniOrange pour WordPress.


 
  var client = new RestClient("http://<wp_base_url>/wp-json/wp/v2/posts ");
  client.Timeout = -1;
  var request = new RestRequest(Method.GET);
  request.AddHeader("Authorization", "Bearer < jwt_token >");    
  IRestResponse response = client.Execute(request);
  Console.WriteLine(response.Content);
  
 
  OkHttpClient client  = new OkHttpClient().newBuilder().build();
  Request request  = new Request.Builder()
  .url("http://<wp_base_url>/wp-json/wp/v2/posts ")
  .method("GET", null)
  .addHeader = ("Authorization", "Bearer < jwt_token >")    
   .build();
  Response response= client.newCall(request).execute();
          
 
  var settings  = {
      "url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
      "method": "GET",
      "timeout": 0,
      "headers": {
          "Authorization": "Bearer < jwt_token >"
        },        
    };
    
    $.ajax(settings).done(function (response)  {
      console.log(response);
    });
    
 
  <?php
   $curl = curl_init();
  curl_setopt_array($curl, array 
      (  
          CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/wp/v2/posts%20',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'GET',
          CURLOPT_HTTPHEADER => array(
            'Authorization: Bearer < jwt_token >'
          ),
          ));          
        
  $response = curl_exec($curl);
  curl_close($curl);    
  echo $response;
          
 
  import http.client
  
  conn = http.client.HTTPSConnection("<wp_base_url>")
  payload= "
  headers = {
      'Authorization': 'Bearer < jwt_token >'
  }
  conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)
  res= conn.getresponse()    
  data = res.read()    
  print (data.decode("utf-8"))   
  
 
  var client = new RestClient("http://<wp_base_url>/wp-json/api/v1/token ");
  client.Timeout = -1;
  var request = new RestRequest(Method.POST);
  request.AlwaysMultipartFormData = true;
  request.AddParameter("username", "<wordpress_username>");    
  request.AddParameter("password", "<wordpress_password>");    
  IRestResponse response = client.Execute(request);
  Console.WriteLine(response.Content);
  
 
  OkHttpClient client  = new OkHttpClient().newBuilder().build();
  MediaType mediaType = MediaType.parse("text/plain");
  RequestBody body  = new MultipartBody.Builder().setType(MultipartBody.FORM)
  .addFormDataPart("username", "<wordpress_username>"); 
  .addFormDataPart("password", "<wordpress_password>"); 
  .build();
  Request request  = new Request.Builder()
  .url("http://<wp_base_url>/wp-json/api/v1/token ")
  .method("POST", body)
   .build();
  Response responseclient.newCall(request).execute();
        
 
  var form = new FormData();
  form.append("username", "<wordpress_username>");
  form.append("password", "<wordpress_password>");  
  
  var settings  = {
      "url": "http://<wp_base_url>/wp-json/api/v1/token ",
      "method": "POST",
      "timeout": 0,
      "processData": false,
      "mimeType": "multipart/form-data",
      "contentType": false,
      "data": form
      };
      
      $.ajax(settings).done(function (response)  {
      console.log(response);
      });
      
 
  <?php
   $curl = curl_init();
  curl_setopt_array($curl, array 
      ( 
          CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/api/v1/token%20',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'POST',
          CURLOPT_POSTFIELDS => array('username' => '<wordpress_username>','password' => '<wordpress_password>'),
          ));
          
  $response = curl_exec($curl);
  curl_close($curl);    
  echo $response;
        
 
  import http.client
  import mimetypes
  from codecs import encode
      
  conn   = http.client.HTTPSConnection("<wp_base_url>")
  dataList= []
  boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
  dataList.append(encode('--' + boundary))
  dataList.append(encode('Content-Disposition: form-data; name=username;'))
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))    
  dataList.append(encode(''))    
  
  dataList.append(encode("<wordpress_username>"))    
  
  dataList.append(encode('--' + boundary))
  dataList.append(encode('Content-Disposition: form-data; name=password;'))    
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))    
  dataList.append(encode(''))    
  
  dataList.append(encode("<wordpress_password>"))    
  dataList.append(encode('--'+boundary+'--'))
  dataList.append(encode(''))
  body  = b'\r\n'.join(dataList)    
  payload= body
  headers = {
    'Content-type': 'multipart/form-data; boundary={}'.format(boundary) 
  }
  conn.request("POST", "/wp-json/api/v1/token", payload, headers)
  res= conn.getresponse()    
  data = res.read()    
  print (data.decode("utf-8"))   
  

    Suivez les étapes ci-dessous pour effectuer une requête API REST à l'aide de Postman :

  • Cliquez sur le Échantillons de facteur onglet dans le plugin.
  • Méthode d'authentification JWT pour API REST dans l'implémentation de Postman WordPress
  • A Fichier JSON sera automatiquement téléchargé.
  • Méthode d'authentification JWT pour API REST avec fichier JSON Postman sous WordPress
  • Importez le fichier téléchargé Fichier JSON dans l'application Postman comme indiqué ci-dessous.
    • Une fois que vous avez importé le fichier json, cliquez sur la requête API REST sous le Collections comme indiqué dans la dernière figure. Remplacez le avec votre domaine Wordpress dans le http://<wp_base_url>/wp-json/wp/v2/posts et remplacer le avec le nom d'utilisateur WordPress et avec le mot de passe WordPress dans les paramètres du corps.
    • Méthode d'authentification REST JWT pour WordPress Postman : remplacement de l'URL de base
    • Exemple
    • Méthode d'authentification REST JWT pour WordPress : exemple de remplacement de l'URL de base dans Postman
    • NOTE: Copiez le jeton JWT obtenu à partir de la réponse. Il sera utilisé dans les requêtes d'API de ressources pour l'authentification.
    • Une fois que vous avez importé le fichier json, cliquez sur la requête API REST sous le Collections comme indiqué dans la dernière figure. Remplacez le avec votre domaine Wordpress dans le http://<wp_base_url>/wp-json/wp/v2/posts et remplacer le avec le jeton jwt copié à partir de la réponse obtenue après la demande de jeton.
    • Méthode d'authentification REST JWT pour WordPress Postman : remplacer l'URL de base par la ressource réelle
    • Exemple
    • Méthode d'authentification JWT pour API REST dans WordPress (postman) : remplacer l'URL de la ressource réelle

1. Restriction de l'API REST basée sur les rôles :


Cette fonctionnalité restreint l'accès à l'API REST de WordPress en fonction des rôles des utilisateurs . Vous pouvez autoriser certains rôles à accéder à certaines ressources de l'API REST. Lors d'une requête API REST, le rôle de l'utilisateur est vérifié et l'accès est accordé uniquement si ce rôle figure sur la liste blanche.


Comment configurer la restriction de l'API REST basée sur les rôles dans WordPress ?

  • Accédez à l’onglet Paramètres avancés du plugin.
  • Dans la section Restriction basée sur les rôles, tous les rôles sont autorisés à accéder aux API par défaut.
  • Cochez la case en regard des rôles dont vous souhaitez restreindre l’accès aux API.
  • Méthode d'authentification de base pour l'implémentation de Postman dans une API REST
  • Dans la capture d'écran ci-dessus, la case à cocher « rôle d'abonné » est activée. Ainsi, lorsqu'un utilisateur ayant le rôle d'abonné effectue une requête API, il ne sera pas autorisé à accéder à la ressource demandée.

Remarque : La fonctionnalité de restriction basée sur les rôles est valable pour l’authentification de base (nom d’utilisateur : mot de passe), la méthode JWT et OAuth 2.0 (octroi par mot de passe).


2. En-tête personnalisé :


La fonctionnalité d'en-tête personnalisé vous permet d'utiliser un en-tête personnalisé à la place de l'en-tête « Authorization » par défaut. Cela renforce la sécurité, car l'API REST n'acceptera que les requêtes comportant l'en-tête personnalisé que vous avez défini. Toute tentative d'envoi d'une requête avec l'en-tête « Authorization » par défaut sera refusée.


Comment configurer un en-tête personnalisé pour l'authentification de l'API REST pour WordPress ?

  • Accédez à l’onglet Paramètres avancés du plugin.
  • Dans la section En-tête personnalisé, saisissez le nom de votre en-tête préféré dans la zone de texte.
  • Enregistrez les modifications pour appliquer le nouvel en-tête personnalisé aux requêtes API.
  • Méthode d'authentification de base pour l'implémentation de Postman dans une API REST

3. Excluez les API REST :


La fonctionnalité « Exclure les API REST » permet d'autoriser l'accès à certains points de terminaison d'API REST sans authentification . Ces API exclues deviennent publiques et accessibles sans nécessiter de jeton ni de connexion.


Comment configurer l'API REST exclue dans l'authentification JWT ?

  • Accédez à l’onglet Paramètres avancés du plugin.
  • Dans la section Exclure les API REST, saisissez vos points de terminaison d’API au format requis.
  • Les API saisies seront exclues de l’authentification et disponibles pour l’accès public.
  • Méthode d'authentification de base pour l'implémentation de Postman dans une API REST
  • Exemple : Supposons que vous souhaitiez exclure l’API REST « » /wp-json/wp/v2/posts' alors vous devez saisir '/wp/v2/posts' dans la zone de texte.

4. Expiration du jeton personnalisé :


La fonctionnalité d'expiration du jeton personnalisé fonctionne avec JWT et OAuth 2.0 méthodes d'authentification, vous permettant de définir délais d'expiration personnalisés pour les jetons utilisés pour accéder aux points de terminaison de l'API REST de WordPress. Une fois le délai configuré écoulé, le jeton devient automatiquement invalide. invalide, améliorant la sécurité et vous donnant le contrôle sur la durée d'accès.

Comment définir l'expiration du jeton personnalisé dans l'authentification JWT ?

  • Accédez à l’onglet Paramètres avancés du plugin.
  • Ouvrez la section Configuration d’expiration du jeton.
  • Ajustez le délai d'expiration du jeton d'accès (par défaut : 60 minutes).
  • (Pour OAuth 2.0) Ajustez le délai d'expiration du jeton d'actualisation (par défaut : 14 jours).
  • Enregistrez les modifications pour appliquer vos paramètres d’expiration de jeton personnalisés.
  • Méthode d'authentification de base pour l'implémentation de Postman dans une API REST

5. Validation de signature pour les jetons basés sur JWT :


La fonction de validation de signature signe en toute sécurité Jetons JWT pour protéger l'authentification de l'API REST pour WordPress. Chaque signature de jeton ne peut être validée qu'à l'aide de secret client ou certificat, en veillant à ce que la signature reste privé et sécurisé et ne peut être consulté ou modifié par des utilisateurs non autorisés.

Méthode d'authentification de base pour l'implémentation de Postman dans une API REST

Comment configurer la validation de signature JWT à l'aide de HS256 ou RS256 ?

Le plugin prend en charge deux algorithmes de signature pour les jetons JWT : HS256 et RS256 . Vous pouvez sélectionner l’algorithme de votre choix dans le menu déroulant. Pour finaliser la validation de la signature, ajoutez votre clé secrète ou votre certificat client , qui sert à signer le jeton JWT de manière sécurisée et à garantir son authenticité.

6. Jeton d'actualisation


Un jeton d'actualisation est un jeton à longue durée de vie permettant d'obtenir un nouveau jeton d'accès sans que l'utilisateur ait à se reconnecter. Cette fonctionnalité est essentielle pour maintenir la session d'un utilisateur lorsque le jeton d'accès expire. Les jetons d'accès ont généralement une durée de vie courte (de 15 minutes à 1 heure) pour des raisons de sécurité, tandis que les jetons d'actualisation sont conçus pour durer plus longtemps (plusieurs jours, semaines, voire mois).

7. Révoquer le jeton


Révoquer un jeton signifie l'invalider avant son expiration. Cette fonctionnalité est cruciale pour la sécurité , notamment dans des cas comme :

  • Un utilisateur se déconnecte de sa session.
  • Un utilisateur change son mot de passe.
  • Un jeton est compromis (volé ou divulgué).
  • Les administrateurs souhaitent forcer une déconnexion ou invalider les jetons pour certains utilisateurs (par exemple, après une faille de sécurité).


JWT garantit la sécurité grâce à une authentification par jeton JWT qui vérifie chaque requête sans nécessiter l'envoi répété d'identifiants et de mots de passe. Dans le cadre de l'authentification JWT pour les API REST, le jeton est signé numériquement (HS256) ou avec une clé privée (RSA), ce qui le rend inaltérable. Les jetons expirent après une durée déterminée, limitant ainsi les risques en cas de divulgation. L'authentification JWT constitue donc une méthode sécurisée pour protéger les points de terminaison d'API REST de WordPress.

Vous devez ajouter le jeton dans les en-têtes de la requête en utilisant l'en-tête Authorization comme jeton Bearer. Il s'agit de l'approche standard pour l'authentification JWT des API REST et elle est essentielle à l'authentification par jeton JWT. Par exemple :
Authorization: Bearer YOUR_JWT_TOKEN

Lorsque le jeton d'accès expire, l'API renvoie une erreur d'autorisation (généralement 401). Avec l'authentification JWT pour WordPress, vous pouvez utiliser un jeton d'actualisation (jeton d'actualisation JWT) pour demander un nouveau jeton d'accès sans avoir à vous reconnecter. Ce mécanisme constitue un avantage majeur de l'authentification par jeton JWT : il garantit la sécurité des sessions et une expérience utilisateur optimale pour les API REST.

Oui. Le plugin prend en charge la signature de jetons via HS256 et RSA, selon la configuration. HS256 utilise un secret partagé, tandis que RSA utilise une paire de clés publique/privée. Cette flexibilité renforce l'authentification par jeton JWT et répond aux différentes exigences de sécurité pour l'authentification JWT des API REST.

Vous pouvez tester l'authentification JWT pour WordPress en deux étapes simples :

  • Générer un jeton : Utilisez le point de terminaison de jeton du plugin avec des identifiants WordPress valides et vérifiez que vous recevez bien un jeton JWT. curl -d" username=& mot de passe =" -X POST http:///wp-json/api/v1/token
  • Appeler un point de terminaison d'API REST protégé : Envoyer une requête à un point de terminaison protégé avec :
    Authorization: Bearer YOUR_JWT_TOKEN



 Merci pour votre réponse. Nous reviendrons vers vous bientôt.

Quelque chose s'est mal passé. Veuillez soumettre à nouveau votre requête

Nous vous contacterons dans les plus brefs délais !



Besoin d'aide?

Envoyez-nous un e-mail à apisupport@xecurify.com pour obtenir rapidement des conseils (par e-mail ou en réunion) sur vos besoins et notre équipe vous aidera à sélectionner la solution/le forfait le mieux adapté à vos exigences.


ADFS_sso ×
Bonjour!

Besoin d'aide? Nous sommes ici !

soutenez