REST API-autentisering för WordPress med hjälp av tredjepartsleverantör
Översikt
REST API-autentisering för WordPress med hjälp av tredjepartsleverantörsmetoden innebär användning av tokens (access-token/id-token/jwt-token) som tas emot från tredjepartsleverantörer som Google, Facebook, Firebase, Apple, Azure AD, Keycloak, Okta, AWS Cognito, Github, Slack, Gitlab, etc. för att säkert få åtkomst till WordPress rest API.
WordPress-slutpunkter är inte säkra som standard och data kan stjälas via REST API:er i JSON-format. REST API-autentisering för WordPress-plugin låter dig anropa REST API:er med flera säkerhetsmetoder som Basic Auth, API-KEY, JWT-token och OAuth-token. I den här guiden använder vi OAuth-tokens utfärdade av OAuth/OpenID Connect/Firebase-leverantörer för att validera REST API-förfrågningar, vilket skyddar och skyddar din WordPress-webbplats. Varje gång en begäran om åtkomst till REST API görs kommer autentiseringen att göras mot den token som utfärdats av tredjepartsleverantörer som Google, Facebook, Firebase, Apple, Okta, etc., och baserat på valideringen av API-tokenet kommer resurserna för den REST API-förfrågan att tillåtas åtkomst. Så den enda token du fick i din app efter SSO-inloggning kan användas vidare för att komma åt REST API-slutpunkter för WordPress.
REST API-autentisering för WordPress

REST API-autentiseringspluginet för WordPress ger skydd mot obehörig åtkomst till dina REST API:er för WordPress. Vårt plugin erbjuder flera autentiseringsmetoder som grundläggande autentisering, API-nyckelautentisering, OAuth 2.0-autentisering och JWT-autentisering.
Lär dig merFörutsättningar: Ladda ner och installation
- Logga in på din WordPress-instans som admin.
- Gå till WordPress Dashboard -> Plugins och klicka på Lägg till en ny.
- Sök efter en REST API-autentisering plugin för WordPress och klicka på installera nu.
- När du har installerat klicka på Aktivera.
Användningsfall: Autentisera/skydda REST API-slutpunkter för WordPress med hjälp av JWT-token som erhållits från leverantörer (Server) av Social Login/OAuth 2.0/OpenID Connect Identity.
- Anta att du har en Android/iOS-mobilapplikation och har gett dina användare möjlighet att logga in med flera sociala inloggningsleverantörer som Google, Facebook, Apple, Linkedin, Instagram eller andra OAuth/OpenID Connect-leverantörer som AWS Cognito, Auth0, Microsoft Azure, Okta, Keycloak, Firebase etc., och du vill att dina användare ska komma åt REST API-slutpunkterna för WordPress från mobilapplikationerna. Så du kan autentisera REST API-slutpunkterna baserat på access/id-token (JWT-token) som erhållits från OAuth/OpenID Connect Identity-leverantörerna (servern) under single Sign On (SSO) för inloggning i din applikation. Access/id-token/JWT skickas alltså i Authorization-headern för API-begäran med tokentypen Bearer, och valideringen av den token görs direkt via motsvarande OAuth/OpenID Connect/Firebase Identity-leverantörer. Valideringsbegäran görs internt till motsvarande OAuth/OpenID Connect-server. Om valideringen av den token lyckas kommer REST API-begäran att resultera i resurs-/dataåtkomst, och om valideringen misslyckas returneras ett felsvar. På så sätt kan resurserna/datan skyddas med högsta säkerhetsnivå med autentisering direkt från OAuth/OpenID Connect Identity-leverantörer.
- Hur detta användningsfall för autentiseringen kan uppnås med vårt plugin:

1. REST API Endpoint-begäran görs med access/id-token som erhållits från OAuth/OpenID Connect Identity-leverantörerna och skickats i Authorization-headern med tokentypen Bearer.
2. REST API-begäran för WordPress övervakas av vårt plugin och validerings-/autentiseringsbegäran för JWT-token skickas till OAuth/OpenID Connect Identity-leverantören (servern).
3. Svaret returneras från OAuth/OpenID Connect Identity Provider(Server) för begäran som görs tidigare för att validera JWT-token.
4. Om valideringen/autentiseringen av JWT-token lyckas, tillåts åtkomst till den begärda resursen, vilket innebär att begäranden nu har behörighet att komma åt resursen/datan och om i fall tokenvalideringen misslyckades kommer ett felsvar att returneras. Så resursdata är nu skyddade och kan nås vid auktorisering, därför är säkerheten inte ett problem.
Relaterat användningsfall:
- Hur förhindrar man REST API-slutpunkter för WordPress med hjälp av JWT-token som tillhandahålls av Social Login eller OAuth2.0/OpenID Connect Identity Providers?
- Hur utför man autentisering och säkerställer säkerhet eller utför auktorisering för att bevilja åtkomst till WordPress REST API-slutpunkter baserat på den åtkomst-/ID-token som tillhandahålls av Social Login/OAuth-leverantörer under OAuth/OpenID SSO-inloggningsflödet?
Läs Användningsfall för följande Rest API-autentiseringsmetoder:
Konfigurera API-autentiseringsplugin för WordPress
- Välj din Autentiseringsmetod →Tredjepartsleverantör och lägg till Introspektionsslutpunkt från din OAuth/OpenID Connect-leverantör klicka på Spara konfiguration.
- När du har konfigurerat plugin-programmet med Introspection Endpoint som tillhandahålls av din leverantör, försök att komma åt dina REST API:er för WordPress med hjälp av access token/id_token som tillhandahålls av din OAuth-leverantör enligt nedan.
Request: GET https://<domain-name>/wp-json/wp/v2/posts
Header:
access_token : < access_token >
OR
id_token : < id_token >
-H 'app-name:TheAppName'
Kodprover i programmeringsspråk
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"))
Postman prover:
- Du kan ladda ner exempelformatet för Postman-förfrågan från här..
- Extrahera den nedladdade zip-filen och importera den extraherade json-filen till Postman-applikationen.
- Ersätt < access_token > or < id_token > med respektive token som tillhandahålls av din OAuth 2.0-leverantör.
- Ersätt < app-namn > med ditt respektive appnamn.
- Exempel:
Följ stegen nedan för att göra REST API-begäran med Postman:
Funktionsbeskrivning
1. Rollbaserad REST API-begränsning:
Denna funktion tillåter begränsning av REST API-åtkomst baserat på användarrollerna. Du kan vitlista rollerna för vilka du vill tillåta åtkomst till den begärda resursen för REST-API:erna. Så närhelst en REST API-begäran görs av en användare, kommer hans roll att hämtas och får endast komma åt resursen om hans roll är vitlistad.
Hur konfigurerar man det?
- Gå först till plugin-fliken "Avancerade inställningar".
- Sedan, i avsnittet Rollbaserad begränsning, kommer alla roller som standard att tillåtas åtkomst till API:erna. Du kan aktivera kryssrutan för de roller som du vill begränsa åtkomst för.
- I skärmdumpen ovan är kryssrutan prenumerantroll aktiverad. Så närhelst en API-begäran görs av användaren med sin roll som prenumerant kommer den användaren inte att få åtkomst till den begärda resursen.
Obs: Den rollbaserade begränsningsfunktionen är giltig för grundläggande autentisering (användarnamn: lösenord), JWT-metoden och OAuth 2.0 (lösenordsbeviljande).
2. Anpassad rubrik
Den här funktionen ger ett alternativ att välja en anpassad rubrik istället för standardhuvudet "Auktorisering".
Det kommer att öka säkerheten eftersom du har rubriken namngiven med ditt "anpassade namn", så om någon gör REST API-begäran med en rubrik som "Authorization" kommer han inte att kunna komma åt API:erna.
Hur konfigurerar man det?
- Gå först till plugin-fliken "Avancerade inställningar".
- Sedan i avsnittet "Anpassad rubrik" kan du redigera textrutan för att ange det anpassade namn du vill ha.
3. Uteslut REST API:er
Den här funktionen låter dig vitlista dina REST-API:er så att dessa kan nås direkt utan autentisering. Därför är alla dessa vitlistade REST API:er offentligt tillgängliga.
Hur konfigurerar man det?
- Gå först till plugin-fliken "Avancerade inställningar".
- Sedan i "Exclude REST APIs" kan du ange dina API:er i det föreskrivna formatet som måste vitlistas för allmänhetens tillgång.
- Exempel: Antag om du vill utesluta REST API '
/wp-json/wp/v2/posts' så måste du ange '/wp/v2/posts' i textrutan.
4. Anpassad tokens utgång
Den här funktionen gäller för JWT- och OAuth 2.0-metoder som använder tidsbaserade tokens för att autentisera REST API-slutpunkterna för WordPress. Den här funktionen låter dig ställa in ett anpassat utgångsdatum för tokens så att token inte längre är giltig när token har löpt ut.
Hur konfigurerar man det?
- Gå först till plugin-fliken "Avancerade inställningar".
- Sedan i avsnittet "Token Expiry Configuration" kan åtkomsttokens giltighet och uppdateringstoken (används för OAuth 2.0-metoden) ändras. Som standard är utgångstiden för åtkomsttoken inställd på 60 minuter och utgångstiden för uppdateringstoken är inställd på 14 dagar. Med denna funktion kan utgången därför justeras i enlighet med kraven.
Därför, med denna anpassade tokens utgångsfunktion, ökar säkerheten ytterligare.
5. Aktivera avancerad kryptering för tokens med HMAC
Denna funktion är tillgänglig med den grundläggande autentiseringsmetoden där token som standard krypteras med Base64-kodningsteknik men med den avancerade funktionen kan token krypteras med mycket säker HMAC-kryptering vilket är mycket säkert.
6. Signaturvalidering för JWT-baserade tokens
Denna funktion tillåter en säker signering av JWT-signaturen för JWT-token så att din JWT-token är mycket säkrare och signaturen endast kan avkodas med klienthemligheten/certifikatet. Det betyder att din signatur är privat och inte kan ses av andra.
Vi tillhandahåller stöd för 2 signeringsalgoritmer: HS256 och RS256. Så, vilken som helst av signeringsalgoritmerna kan väljas från rullgardinsmenyn som visas i bilden ovan.
Du måste också lägga till din klienthemlighet eller certifikat som används för att signera signaturen för JWT.
7. Skapa användarspecifik API-nyckel/tokens
- Denna funktion är tillgänglig inom API-nyckelmetoden där tokens kan genereras i enlighet med användarinformationen snarare än en slumpmässigt genererad token som är en universell nyckel.
- Med Universal API-nyckeln/token har användare inte behörighet att komma åt vissa REST API:er för WordPress med POST-, PUT- eller DELETE-förfrågningsmetoder, till exempel att skapa användare, inlägg eller sidor etc., där en viss användarbehörighet/roll krävs för att utföra operationer med hjälp av REST API-förfrågan, eftersom universalnyckeln genereras slumpmässigt och inte innehåller den användarbaserade beskrivningen.
- Så den här användarbaserade API-nyckeln/token-funktionen tillåter användaren att komma åt REST API:er med förfrågningsmetoder som POST, PUT, DELETE i WordPress, vilket kräver användaruppgifter eller vissa roller för att utföra operationen. När REST API-förfrågan för WordPress görs med den användarbaserade nyckeln erhålls användarens roll och hen får endast åtkomst till API:et om hen har behörighet att göra det.
- Till exempel: Endast användare med administratörs- och redaktörsroller har behörighet att skapa/redigera/ta bort ett inlägg.
- Så om en begäran görs till detta API för att skapa/ta bort/redigera inlägget, kommer API-svaret att resultera i "Du får inte utföra den här operationen".
- Nu, om en begäran görs med den användarbaserade token som genereras för användaren som har administratörs- eller redaktörsroll, är det bara de som har tillgång till detta API och kan utföra operationen (skapa/uppdatera/ta bort) via API-anropet.
- Välj användaren från rullgardinsmenyn och klicka på knappen Skapa API-nyckel.
- En popup kommer att visas på skärmen, du behöver bara klicka på OK-knappen för att kopiera token.
- Nu kan denna token användas med API-begäran precis som den universella nyckeln används för att göra API-begäran.
Så här använder du den här funktionen:
Begär en demo av plugin-programmet
Få en komplett provversion
Tack för ditt svar. Vi återkommer snart.
Något gick fel. Skicka din fråga igen

Behöver hjälp?
Maila oss vidare apisupport@xecurify.com för snabb vägledning (via e-post/möte) om ditt krav och vårt team hjälper dig att välja den bästa lämpliga lösningen/planen enligt dina krav.
