Authentification de l'API REST pour WordPress via un fournisseur tiers
Marché
L'authentification de l'API REST pour WordPress à l'aide de la méthode de 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 REST de WordPress.
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'extension « Authentification API REST pour WordPress » vous permet d'appeler les API REST avec plusieurs méthodes de sécurité, telles que l'authentification de base, une clé API, un jeton JWT ou un jeton OAuth. Dans ce guide, nous utiliserons un jeton OAuth émis par les fournisseurs OAuth/OpenID Connect/Firebase pour valider les requêtes API REST, ce qui garantira la protection et la sécurité de votre site WordPress. À chaque requête d'accès à l'API REST, l'authentification sera effectuée à l'aide du jeton émis par un fournisseur tiers comme Google, Facebook, Firebase, Apple, Okta, etc. L'accès aux ressources de l'API REST sera autorisé uniquement après validation du jeton. Ainsi, le jeton unique obtenu sur votre application après la connexion SSO peut être utilisé pour accéder aux points de terminaison API REST de WordPress.
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.
Savoir plusPré-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.
- Rechercher un Authentification API REST plugin pour WordPress 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 pour 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 permettant à vos utilisateurs de se connecter via différents fournisseurs d'authentification tels que Google, Facebook, Apple, LinkedIn, Instagram ou d'autres fournisseurs OAuth/OpenID Connect comme AWS Cognito, Auth0, Microsoft Azure, Okta, Keycloak, Firebase, etc. Vous souhaitez que vos utilisateurs puissent accéder aux points de terminaison de l'API REST de WordPress depuis l'application mobile. Pour ce faire, vous pouvez authentifier l'accès à ces points de terminaison à l'aide d'un jeton d'accès/d'identité (jeton JWT) obtenu auprès du fournisseur d'identité OAuth/OpenID Connect (serveur) lors de l'authentification unique (SSO) pour la connexion à votre application. Le jeton d'accès/d'identité (JWT) est alors transmis dans l'en-tête Authorization de la requête API, avec le type de jeton « Bearer », et sa validation est effectuée directement par le fournisseur d'identité OAuth/OpenID Connect/Firebase correspondant. La requête de validation est donc adressée en interne au serveur OAuth/OpenID Connect approprié. Si la validation du jeton réussit, la requête API REST permettra d'accéder aux ressources/données ; en cas d'échec, une réponse d'erreur sera renvoyée. Ainsi, les ressources/données bénéficient d'une sécurité maximale grâce à une authentification directe via les fournisseurs d'identité OAuth/OpenID Connect.
- Comment ce cas d'utilisation de l'authentification peut être réalisé avec notre plugin :

1. La requête du point de terminaison de l'API REST 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 Bearer.
2. La requête API REST pour WordPress est surveillée par notre plugin et la requête 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 requête effectuée précédemment afin de valider le jeton JWT.
4. Si la validation/l'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. En cas d'échec de la validation du jeton, une réponse d'erreur est renvoyée. Les données de la ressource sont donc protégées et accessibles après autorisation ; la sécurité n'est donc plus un problème.
Cas d'utilisation associé :
- Comment empêcher les points de terminaison d'API REST pour 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 l'autorisation pour accorder l'accès aux points de terminaison de l'API REST de WordPress sur la base du jeton d'accès/d'identification fourni par les fournisseurs de connexion sociale/OAuth lors du flux de connexion SSO OAuth/OpenID ?
- Comment s'authentifier et accéder aux points de terminaison de l'API REST de WordPress/WooCommerce à l'aide de Jetons JWT Firebase pour applications mobiles?
Consultez les cas d'utilisation des méthodes d'authentification d'API REST suivantes :
Configurer le plugin d'authentification API pour 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.
- Une fois que vous avez configuré le plugin avec le point de terminaison d'introspection fourni par votre fournisseur, essayez d'accéder à vos API REST pour WordPress en utilisant le jeton d'accès/jeton d'identification 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 >
-H 'app-name:TheAppName'
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>");
request.AddHeader = ("app-name", "TheAppName");
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>")
.addHeader = ("app-name", "TheAppName");
.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>"
"app-name": "TheAppName"
},
};
$.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>'
'app-name: TheAppName'
),
));
$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>'
'app-name': 'TheAppName',
}
conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)
res= conn.getresponse()
data = res.read()
print (data.decode("utf-8"))
Échantillons de facteur :
- 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.
- Remplacez le < jeton_d'accès > or < jeton_id > avec le jeton correspondant fourni par votre fournisseur OAuth 2.0.
- Remplacez le < nom de l'application > avec votre AppName respectif.
- Exemple :
Suivez les étapes ci-dessous pour effectuer une requête API REST à l'aide de Postman :
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 autoriser uniquement les rôles qui auront accès à la ressource demandée par l'API REST. Ainsi, lorsqu'un utilisateur effectue une requête API REST, son rôle est déterminé et l'accès à la ressource n'est autorisé que si ce rôle figure sur la 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 sont autorisés par défaut à accéder aux API. Vous pouvez cocher la case des rôles pour lesquels vous souhaitez restreindre l'accès.
- Dans la capture d'écran ci-dessus, la case « Rôle d'abonné » est cochée. Par conséquent, 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é
Cette fonctionnalité offre la possibilité de choisir un en-tête personnalisé plutôt que l'en-tête « Autorisation » par défaut.
Cela renforcera la sécurité car l'en-tête portera votre « nom personnalisé ». Ainsi, si quelqu'un effectue une requête API REST avec un en-tête nommé « Authorization », 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é.
3. Exclure les API REST
Cette fonctionnalité vous permet d'ajouter vos API REST à une liste blanche afin qu'elles soient accessibles directement, sans authentification. Ainsi, toutes ces API REST autorisées sont accessibles publiquement.
Comment le configurer ?
- Tout d’abord, allez dans l’onglet « Paramètres avancés » du plugin.
- Ensuite, dans la section « Exclure les API REST », vous pouvez saisir vos API au format prescrit, lesquelles doivent être autorisées pour un accès public.
- Exemple : Supposons que vous souhaitiez exclure l'API REST '
/wp-json/wp/v2/posts' puis vous devez saisir '/wp/v2/posts' dans la zone de texte.
4. Expiration du jeton personnalisé
Cette fonctionnalité est compatible avec les méthodes JWT et OAuth 2.0 qui utilisent des jetons à durée de vie limitée pour authentifier les points de terminaison de l'API REST de WordPress. Elle vous permet de définir une durée de validité personnalisée pour ces jetons, qui deviennent invalides une fois expirés.
Comment le configurer ?
- Tout d’abord, allez dans l’onglet « Paramètres avancés » du plugin.
- Dans la section « Configuration de l'expiration des jetons », vous pouvez modifier la durée de validité du jeton d'accès et du jeton d'actualisation (utilisé pour OAuth 2.0). Par défaut, la durée de validité du jeton d'accès est de 60 minutes et celle du jeton d'actualisation de 14 jours. Cette fonctionnalité permet d'ajuster ces durées selon vos besoins.
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 chiffré à l'aide de la technique d'encodage Base64, mais avec la fonctionnalité avancée, le jeton peut être chiffré avec un chiffrement HMAC hautement sécurisé, qui est très sûr.
6. Validation de signature pour les jetons basés sur JWT
Cette fonctionnalité permet de sécuriser la signature JWT du jeton JWT, renforçant ainsi sa sécurité. La signature ne peut être décodée qu'à l'aide du secret/certificat client. Votre signature reste donc privée et invisible pour les autres.
Nous prenons en charge deux algorithmes de signature : HS256 et RS256. Vous pouvez donc choisir l’un ou l’autre de ces algorithmes dans le menu déroulant, comme illustré 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 via la méthode de clé API, qui permet de générer des jetons en fonction des informations de l'utilisateur plutôt qu'un jeton généré aléatoirement, qui est une clé universelle.
- Avec la clé/le jeton d'API universel, les utilisateurs n'ont pas l'autorisation d'accéder à certaines API REST pour WordPress avec les méthodes de requête POST, PUT ou DELETE, telles que la création d'utilisateurs, de publications ou de pages, etc., pour lesquelles des autorisations/un rôle utilisateur spécifiques 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 aléatoirement et ne contient pas la description basée sur l'utilisateur.
- Ainsi, cette fonctionnalité de clé/jeton API basé sur l'utilisateur permet à l'utilisateur d'accéder aux API REST avec les méthodes de requête POST, PUT et DELETE dans WordPress, ce qui nécessite des identifiants utilisateur ou certains rôles pour effectuer l'opération. Ainsi, lorsque la requête API REST pour 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 dispose de la permission de le faire.
- Par Exemple: Seuls les utilisateurs ayant les rôles d'administrateur et d'éditeur sont autorisés à créer, modifier ou supprimer une publication.
- Ainsi, si une requête est adressée à cette API pour créer/supprimer/modifier la publication, la réponse de l'API sera « Vous n'êtes pas autorisé à effectuer cette opération ».
- Désormais, seules les requêtes effectuées avec un jeton basé sur l'utilisateur et généré pour un utilisateur ayant le rôle d'administrateur ou d'éditeur auront accès à cette API et pourront effectuer l'opération (création/mise à jour/suppression) via l'appel API.
- Sélectionnez l'utilisateur dans la liste déroulante et cliquez sur le bouton Créer une clé API.
- Une pop up apparaîtra à l'écran, il vous suffit de cliquer sur le bouton OK pour copier le token.
- Ce jeton peut désormais être utilisé avec la requête API de la même manière que la clé universelle est utilisée pour effectuer la requête API.
Comment utiliser cette fonctionnalité :
Demander une démo du plugin
Obtenez un essai complet
Merci pour votre réponse. Nous vous répondrons rapidement.
Quelque chose s'est mal passé. Veuillez soumettre à nouveau votre requête

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.
