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 demande effectuée précédemment afin de 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. En cas d'échec de la validation du jeton, une erreur est renvoyée. Les données de la ressource sont donc protégées et accessibles sur 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 ?
Lisez les cas d’utilisation des méthodes d’authentification de l’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 ajouter à la liste blanche les rôles auxquels vous souhaitez autoriser l'accès à la ressource demandée pour les API REST. Ainsi, lorsqu'un utilisateur effectue une requête API REST, son rôle est récupéré et l'accès à la ressource n'est autorisé que s'il 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 autorisés par défaut à accéder aux API. Vous pouvez cocher les rôles pour lesquels vous souhaitez restreindre l'accès.
- 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.
À noter: 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 vous avez l'en-tête 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é.
3. Exclure les API REST
Cette fonctionnalité vous permet d'ajouter vos API REST à votre liste blanche afin d'y accéder directement sans authentification. Ainsi, toutes ces API REST 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 au format prescrit qui doit être ajouté à la liste blanche pour l'accès public.
- 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é
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 validité des jetons d'accès et d'actualisation (utilisés pour la méthode OAuth 2.0). Par défaut, le délai d'expiration des jetons d'accès est fixé à 60 minutes et celui des jetons d'actualisation à 14 jours. Cette fonctionnalité permet d'ajuster l'expiration en fonction des 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 de codage Base64, mais avec la fonctionnalité avancée, le jeton peut être chiffré avec un cryptage HMAC hautement sécurisé qui est très sécurisé.
6. Validation de signature pour les jetons basés sur JWT
Cette fonctionnalité permet une signature JWT sécurisée pour le jeton JWT. Votre jeton JWT est ainsi beaucoup plus sécurisé et la signature ne peut être déchiffrée qu'à l'aide du secret/certificat client. Votre signature est donc privée et invisible.
Nous fournissons la prise en charge de 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é/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 disposant des rôles d'administrateur et d'éditeur ont l'autorisation de 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 sera « Vous n'êtes pas autorisé à effectuer cette opération ».
- Désormais, si une demande est effectuée 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 est en mesure d'effectuer l'opération (créer/mettre à jour/supprimer) via l'appel d'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 demande d'API, tout comme la clé universelle est utilisée pour effectuer la demande d'API.
Comment utiliser cette fonctionnalité :
Demander une démo du plugin
Obtenez un essai complet
Merci pour votre réponse. Nous vous répondrons dans les plus brefs délais.
Quelque chose s'est mal passé. Veuillez soumettre à nouveau votre requête

Besoin d'aide?
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.
