Résultats de recherche :

×

Authentification de l'API WordPress REST à l'aide d'un fournisseur tiers


L'authentification de l'API REST WordPress à l'aide de la méthode d'un fournisseur tiers implique l'utilisation de jetons (jeton d'accès/jeton d'identification/jeton jwt) reçus de fournisseurs tiers tels que Google, Facebook, Firebase, Apple, Azure AD, Keycloak, Okta, AWS Cognito. , Github, Slack, Gitlab, etc. pour accéder en toute sécurité à l'API WordPress Rest.

Les points de terminaison WordPress ne sont pas sécurisés par défaut et les données peuvent être volées via les API REST au format JSON. L'authentification API REST WordPress vous permet d'appeler des API REST avec plusieurs méthodes de sécurité telles que Basic Auth, API KEY, jeton JWT, jeton OAuth. Dans ce guide, nous utiliserons le jeton OAuth émis par les fournisseurs OAuth/OpenID Connect/Firebase pour valider les requêtes API REST qui garantiront la protection et la sécurité de votre site Web WordPress.
Chaque fois qu'une demande d'accès à l'API REST sera effectuée, l'authentification sera effectuée par rapport à ce token émis par des fournisseurs tiers comme Google, Facebook, Firebase, Apple, okta, etc., et sur la base de la validation de l'API. jeton, les ressources de cette requête API REST seront autorisées à accéder. Ainsi, le jeton unique que vous avez obtenu sur votre application après la connexion SSO peut être utilisé davantage pour accéder aux points de terminaison de l'API WP REST.


Authentification de l'API Rest WordPress
Par miniOrange

Le plugin d’authentification WordPress REST API fournit la sécurité contre tout accès non autorisé à vos API WordPress REST.

En savoir plus

Pré-requis : Téléchargement Et Installation


  • Connectez-vous à votre instance WordPress en tant qu'administrateur.
  • Aller sur WordPress Tableau de bord ➜ Plugins et cliquez sur Ajouter un nouveau véhicule .
  • Rechercher un WordPress Authentification API REST plugin et cliquez sur Installer maintenant.
  • Une fois installé cliquez sur Activer.

Cas d'utilisation : authentifier/protéger les points de terminaison de l'API REST WordPress à l'aide du jeton JWT obtenu auprès des fournisseurs d'identité Social Login/OAuth 2.0/OpenID Connect (serveur).

  • Supposons que vous disposiez d'une application mobile Android/iOS et que vous ayez permis à votre utilisateur de se connecter avec plusieurs fournisseurs de connexion sociale comme Google, Facebook, Apple, Linkedin, Instagram ou d'autres fournisseurs OAuth/OpenID Connect comme AWS Cognito, Auth0, Microsoft Azure, Okta, Keycloak, Firebase, etc. et vous souhaitez que vos utilisateurs accèdent aux points de terminaison de l'API REST WordPress à partir des applications mobiles, afin que vous puissiez effectuer l'authentification de l'accès aux points de terminaison de l'API REST WordPress en fonction du jeton d'accès/d'identification (jeton JWT) obtenu à partir du OAuth/ Fournisseurs d'identité OpenID Connect (serveur) lors de l'authentification unique (SSO) pour la connexion à votre application. Ainsi, le jeton d'accès/d'identification/JWT est transmis dans l'en-tête d'autorisation de la demande d'API avec le type de jeton comme Bearer et la validation de ce jeton est effectuée directement via les fournisseurs OAuth/OpenId Connect/Firebase Identity correspondants. La demande de validation est donc effectuée en interne auprès du serveur OAuth/OpenID Connect correspondant. Si la validation de ce jeton réussit, la requête API REST entraînera un accès aux ressources/données, et en cas d'échec de la validation, la réponse d'erreur sera renvoyée. De cette manière, les ressources/données peuvent être protégées avec le plus haut niveau de sécurité avec l'authentification directement auprès des fournisseurs d'identité OAuth/OpenID Connect.

  • Authentification de l'API WordPress REST à l'aide d'une méthode de clé tierce
  • Comment ce cas d'utilisation de l'authentification peut être réalisé avec notre plugin :
    • 1. La demande de point de terminaison de l'API REST WordPress est effectuée avec le jeton d'accès/d'identification obtenu auprès des fournisseurs d'identité OAuth/OpenID Connect transmis dans l'en-tête d'autorisation avec le type de jeton comme Bearer.

      2. La demande d'API REST WordPress est surveillée par notre plugin et la demande de validation/authentification du jeton JWT est envoyée au fournisseur d'identité OAuth/OpenID Connect (serveur).

      3. La réponse est renvoyée par le fournisseur d'identité OAuth/OpenID Connect (serveur) pour la demande faite précédemment pour valider le jeton JWT.

      4. Si la validation/authentification du jeton JWT réussit, l'accès à la ressource demandée est autorisé, ce qui signifie que le demandeur est désormais autorisé à accéder à la ressource/aux données et si, dans le cas, la validation du jeton échoue, une réponse d'erreur sera renvoyée. . Ainsi, les données sur les ressources sont désormais protégées et sont accessibles sur autorisation, la sécurité n'est donc pas un problème.


    Cas d'utilisation associé : Comment empêcher les points de terminaison de l'API REST WordPress d'utiliser le jeton JWT fourni par Social Login ou les fournisseurs d'identité OAuth2.0/OpenID Connect ?


    Comment effectuer l'authentification et garantir la sécurité ou effectuer une autorisation pour accorder l'accès aux points de terminaison de l'API REST WordPress sur la base du jeton d'accès/d'identification fourni par les fournisseurs de connexion sociale/OAuth lors du flux de connexion OAuth/OpenID SSO ?

Lisez les cas d'utilisation pour les méthodes d'authentification de l'API Rest suivantes :

Étape 1 : Configurer le plugin d'authentification de l'API REST WordPress

    • Sélectionnez votre Méthode d'authentification → Fournisseur tiers et ajouter Point final de l'introspection fourni par votre fournisseur OAuth/OpenID Connect, cliquez sur Enregistrer la configuration.
    • Authentification de l'API WordPress REST à l'aide d'une méthode de clé tierce
    • Une fois que vous avez configuré le plugin avec l'Introspection Endpoint fourni par votre fournisseur, essayez d'accéder à vos API WordPress REST à l'aide du jeton d'accès/id_token fourni par votre fournisseur OAuth, comme indiqué ci-dessous.
    • Request: GET https://<domain-name>/wp-json/wp/v2/posts
      Header: 
      access_token : < access_token >
      OR
      id_token  : < id_token  >
      
    • Jetez un coup d'œil au documentation développeur pour plus de détails.

img Exemples de code dans les langages de programmation


 
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", "< access_token > OR id_token <id_token>");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
 
OkHttpClient client  = new OkHttpClient().newBuilder().build();
MediaType mediaType  = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request  = new Request.Builder()
.url("http://<wp_base_url>/wp-json/wp/v2/posts ")
.method("GET", null)
 .addHeader = ("Authorization", "< access_token > OR id_token <id_token>")
 .build();
Response responseclient.newCall(request).execute();
        
 
var settings  = {
    "url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
    "method": "GET",
    "timeout": 0,
    "headers": {
      "Authorization": "< access_token > OR id_token <id_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: < access_token > OR id_token <id_token>'
    
      ),
    
        ));          
      
$response = curl_exec($curl);
curl_close($curl);    
echo $response;
        
 
import http.client

conn   = http.client.HTTPSConnection("<wp_base_url>")
payload= "
headers = {
  'Authorization': '< access_token > OR id_token <id_token>'
}
conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)
res= conn.getresponse()    
data = res.read()    
print (data.decode("utf-8"))   

Échantillons de facteur :

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

  • Vous pouvez télécharger l'exemple de format de demande Postman à partir de ici.
  • Extrayez le fichier zip téléchargé et importez le fichier json extrait dans l'application Postman.
  • Authentification de l'API WordPress REST à l'aide de la mise en œuvre d'une méthode tierce
  • Remplacez le < jeton_d'accès > or < jeton_id > avec le jeton respectif fourni par votre fournisseur OAuth 2.0.
  • Mise en situation :
  • Authentification de l'API REST WordPress à l'aide d'une méthode tierce, le facteur remplace l'URL de la ressource réelle

Fonction description

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

    Cette fonctionnalité permet de restreindre l'accès à l'API REST en fonction des rôles des utilisateurs. Vous pouvez ajouter sur liste blanche les rôles pour lesquels vous souhaitez autoriser l'accès à la ressource demandée pour les API REST. Ainsi, chaque fois qu'une requête API REST est effectuée par un utilisateur, son rôle sera récupéré et autorisé à accéder à la ressource uniquement si son rôle est sur liste blanche.


    Comment le configurer ?

    • Tout d’abord, allez dans l’onglet « Paramètres avancés » du plugin.
    • Ensuite, dans la section Restriction basée sur les rôles, tous les rôles seront par défaut autorisés à accéder aux API. Vous pouvez cocher la case des rôles pour lesquels vous souhaitez restreindre l'accès.
    • Implémentation du postier de la méthode d'authentification de base de l'API REST WordPress
    • Dans la capture d'écran ci-dessus, la case à cocher du rôle d'abonné est activée. Ainsi, chaque fois qu'une requête API est effectuée par l'utilisateur avec son rôle d'abonné, cet utilisateur ne sera pas autorisé à accéder à la ressource demandée.

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

    2. En-tête personnalisé

    Cette fonctionnalité offre la possibilité de choisir un en-tête personnalisé plutôt que l'en-tête « Autorisation » par défaut.

    Cela augmentera la sécurité car l'en-tête est nommé avec votre « nom personnalisé », donc si quelqu'un fait la demande d'API REST avec un en-tête comme « Autorisation », il ne pourra pas accéder aux API.


    Comment le configurer ?

    • Tout d’abord, allez dans l’onglet « Paramètres avancés » du plugin.
    • Ensuite, dans la section « En-tête personnalisé », vous pouvez modifier la zone de texte pour saisir le nom personnalisé souhaité.
    • Implémentation du postier de la méthode d'authentification de base de l'API REST WordPress

    3. Exclure les API REST

    Cette fonctionnalité vous permet de mettre en liste blanche vos API REST afin qu'elles soient accessibles directement sans aucune authentification. Par conséquent, toutes ces API REST sur liste blanche sont accessibles au public.


    Comment le configurer ?

    • Tout d’abord, allez dans l’onglet « Paramètres avancés » du plugin.
    • Ensuite, dans « Exclure les API REST », vous pouvez saisir vos API dans le format prescrit qui doit être ajouté à la liste blanche pour un accès public.
    • Implémentation du postier de la méthode d'authentification de base de l'API REST WordPress
    • Exemple : Supposons que vous souhaitiez exclure l'API REST '/wp-json/wp/v2/posts', vous devez alors saisir '/wp/v2/posts' dans la zone de texte.

    4. Expiration du jeton personnalisé

    Cette fonctionnalité est applicable aux méthodes JWT et OAuth 2.0 qui utilisent des jetons basés sur le temps pour authentifier les points de terminaison de l'API REST WordPress. Cette fonctionnalité vous permet de définir l'expiration personnalisée des jetons de telle sorte que le jeton ne sera plus valide une fois le jeton expiré.


    Comment le configurer ?

    • Tout d’abord, allez dans l’onglet « Paramètres avancés » du plugin.
    • Ensuite, dans la section « Configuration d'expiration du jeton », la validité du jeton d'accès et le jeton d'actualisation (utilisé pour la méthode OAuth 2.0) peuvent être modifiés. Par défaut, le délai d'expiration du jeton d'accès est défini sur 60 minutes et le délai d'expiration du jeton d'actualisation est défini sur 14 jours. Par conséquent, avec cette fonctionnalité, l’expiration peut être ajustée en conséquence selon les exigences.
    • Implémentation du postier de la méthode d'authentification de base de l'API REST WordPress

    Par conséquent, avec cette fonctionnalité d’expiration de jeton personnalisée, la sécurité est encore renforcée.

    5. Activez le cryptage avancé pour les jetons à l'aide de HMAC

    Cette fonctionnalité est disponible avec la méthode d'authentification de base dans laquelle, par défaut, le jeton est crypté à l'aide de la technique de codage Base64, mais avec la fonctionnalité avancée, le jeton peut être crypté avec un cryptage HMAC hautement sécurisé.

    Implémentation du postier de la méthode d'authentification de base de l'API REST WordPress

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

    Cette fonctionnalité permet une signature sécurisée de la signature JWT pour le jeton JWT de sorte que votre jeton JWT soit beaucoup plus sécurisé et que la signature ne puisse être décodée qu'à l'aide du secret/certificat client. Cela signifie que votre signature est privée et ne peut être vue par les autres.

    Implémentation du postier de la méthode d'authentification de base de l'API REST WordPress

    Nous prenons en charge 2 algorithmes de signature : HS256 et RS256. Ainsi, n'importe lequel des algorithmes de signature peut être choisi dans la liste déroulante, comme indiqué dans l'image ci-dessus.

    En outre, vous devez ajouter votre secret client ou votre certificat à partir duquel est utilisé pour signer la signature du JWT.

    7. Créer une clé/des jetons API spécifiques à l'utilisateur

    • Cette fonctionnalité est disponible dans la méthode de clé API dans laquelle les jetons peuvent être générés conformément aux informations de l'utilisateur plutôt qu'un jeton généré aléatoirement qui est une clé universelle.
    • Avec la clé/jeton API universel, l'utilisateur ne peut pas avoir l'autorisation d'accéder à certaines API REST WordPress avec une méthode de requête telle que POST, PUT, DELETE, comme la création d'utilisateurs, de publications, de pages, etc., dans lesquels des autorisations/rôles d'utilisateur particuliers sont requis pour effectuer des opérations. via l'utilisation de la requête API REST car la clé universelle est générée de manière aléatoire et ne contient pas la description basée sur l'utilisateur.
    • Ainsi, cette fonctionnalité de clé/jeton API basée sur l'utilisateur permet à l'utilisateur d'accéder aux API REST avec la méthode de requête telle que POST, PUT, DELETE dans WordPress qui nécessite des informations d'identification de l'utilisateur ou certains rôles pour effectuer l'opération, de sorte que lorsque la demande de l'API REST de WordPress est effectuée. avec la clé basée sur l'utilisateur, le rôle de l'utilisateur est obtenu et il ne sera autorisé à accéder à l'API que s'il en a l'autorisation.
    • Par exemple: Seuls les utilisateurs disposant des rôles d'administrateur et d'éditeur disposent des autorisations nécessaires pour créer/modifier/supprimer une publication.
    • Ainsi, si une demande est faite à cette API pour créer/supprimer/modifier la publication, la réponse de l'API entraînera « Vous n'êtes pas autorisé à effectuer cette opération ».
    • Désormais, si une demande est faite avec le jeton basé sur l'utilisateur généré pour l'utilisateur qui a le rôle d'administrateur ou d'éditeur, alors lui seul a accès à cette API et peut effectuer l'opération (créer/mettre à jour/supprimer) via l'appel d'API.
    • Comment utiliser cette fonctionnalité :

    • Sélectionnez l'utilisateur dans la liste déroulante et cliquez sur le bouton Créer une clé API.
    • Implémentation du postier de la méthode d'authentification de base de l'API REST WordPress
    • Une pop up apparaîtra à l'écran, il vous suffit de cliquer sur le bouton OK pour copier le token.
    • Implémentation du postier de la méthode d'authentification de base de l'API REST WordPress
    • Désormais, ce jeton peut être utilisé avec la requête API, tout comme la clé universelle est utilisée pour effectuer la requête API.

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

Plugins recommandés

Le plugin d’authentification WordPress REST API fournit la sécurité contre les accès non autorisés à vos API WordPress REST. Il vous offre une variété de méthodes d'authentification telles que l'authentification de base, l'authentification par clé API, l'authentification OAuth 2.0, l'authentification JWT.

 Testé avec 5.9.2

Ce plugin vous permet de créer des points de terminaison/routes REST personnalisés pour récupérer/modifier/créer/supprimer des données avec une interface graphique facile à utiliser et également avec les requêtes SQL personnalisées. En outre, le plugin fournit la fonctionnalité permettant d’intégrer une API externe dans votre site WordPress avec des plateformes tierces.

 Testé avec 5.9.2
Bonjour!

Besoin d'aide? Nous sommes ici !

Support
Contacter l'assistance miniOrange
succès

Merci pour votre demande.

Si vous n'avez pas de nouvelles de nous dans les 24 heures, n'hésitez pas à envoyer un e-mail de suivi à info@xecurify.com