Sökresultat :

×

WordPress REST API-autentisering med hjälp av tredjepartsleverantör


WordPress REST API-autentisering 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 säker å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. WordPress REST API-autentisering låter dig anropa REST API:er med flera säkerhetsmetoder som Basic Auth, API KEY, JWT-token, OAuth-token. I den här guiden kommer vi att använda OAuth-token som utfärdats av OAuth/OpenID Connect/Firebase-leverantörer för att validera REST API-förfrågningar som kommer att hålla din WordPress-webbplats skyddad och säker.
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 på basis av valideringen av API:et token kommer resurserna för den REST API-begäran att tillåtas åtkomst. Så den enda token du fick på din app efter SSO-inloggning kan användas ytterligare för att komma åt WP REST API-slutpunkter.


WordPress Rest API-autentisering
Av miniOrange

WordPress REST API Authentication plugin ger säkerheten från obehörig åtkomst till dina WordPress REST API:er.

Lär dig mer

Fö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 WordPress REST API-autentisering plugin och klicka på installera nu.
  • När du har installerat klicka på Aktivera.

Användningsfall: Autentisera/skydda WordPress REST API-slutpunkter med JWT-token som erhålls från Social Login/OAuth 2.0/OpenID Connect Identity-leverantörer (Server).

  • Anta att du har en android/iOS-mobilapplikation och du har gett din användare 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 få åtkomst till WordPress REST API-slutpunkterna från mobilapplikationerna, så att du kan utföra autentisering av WordPress REST API-slutpunkternas åtkomst baserat på åtkomst/id-token (JWT-token) som erhålls från OAuth/ OpenID Connect Identitetsleverantörer (server) medan enkel inloggning (SSO) för inloggning i din applikation. Så åtkomst/id-token/JWT skickas i auktoriseringshuvudet för API-begäran med tokentypen som bärare och validering av denna token görs direkt genom motsvarande OAuth/OpenId Connect/Firebase Identity-leverantörer. Så valideringsbegäran görs internt till motsvarande OAuth/OpenID Connect Server. Om valideringen av denna token lyckas, kommer REST API-begäran att resultera i resurs-/dataåtkomst, och vid valideringsfelet kommer felsvaret att returneras. På så sätt kan resurserna/data skyddas med högsta säkerhetsnivå med autentisering direkt från OAuth/OpenID Connect Identity-leverantörer.

  • WordPress REST API-autentisering med tredje parts nyckelmetod
  • Hur detta användningsfall för autentiseringen kan uppnås med vårt plugin:
    • 1. WordPress REST API Endpoint-begäran görs med åtkomst/id-token som erhållits från OAuth/OpenID Connect Identity-leverantörer som skickas i auktoriseringshuvudet med tokentypen som bärare.

      2. WordPress REST API-begäran övervakas av vårt plugin och JWT-token validering/autentiseringsbegäran skickas till OAuth/OpenID Connect Identity Provider (Server).

      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 få tillgång till resursen/datan och om 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 WordPress REST API-slutpunkter med 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 ge åtkomst till WordPress REST API-slutpunkter på basis av å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:

Steg 1: Konfigurera WordPress REST API Authentication-plugin

    • Välj din Autentiseringsmetod →Tredjepartsleverantör och lägg till Introspektionsslutpunkt från din OAuth/OpenID Connect-leverantör klicka på Spara konfiguration.
    • WordPress REST API-autentisering med tredje parts nyckelmetod
    • När du har konfigurerat insticksprogrammet med Introspection Endpoint från din leverantör, försök att komma åt dina WordPress REST API:er med åtkomsttoken/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  >
      
    • Kolla in utvecklarens dokumentation för mer detaljer.

miniorange img 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>");
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"))   

Postman prover:

    Följ stegen nedan för att göra REST API-begäran med Postman:

  • 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.
  • WordPress REST API-autentisering med hjälp av postman-implementering från tredje part
  • Ersätt < access_token > or < id_token > med respektive token som tillhandahålls av din OAuth 2.0-leverantör.
  • Exempelvis:
  • WordPress REST API-autentisering med hjälp av tredje parts metod postman ersätter url faktiska resurs

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.
    • WordPress REST API grundläggande autentiseringsmetod implementering av postman
    • 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.

    Notera: 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.
    • WordPress REST API grundläggande autentiseringsmetod implementering av postman

    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.
    • WordPress REST API grundläggande autentiseringsmetod implementering av postman
    • 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 är tillämplig för JWT- och OAuth 2.0-metoder som använder tidsbaserade tokens för att autentisera WordPress REST API-slutpunkter. Den här funktionen låter dig ställa in den anpassade utgången för tokens så att token inte längre kommer att vara giltig när token upphör.


    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.
    • WordPress REST API grundläggande autentiseringsmetod implementering av postman

    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.

    WordPress REST API grundläggande autentiseringsmetod implementering av postman

    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.

    WordPress REST API grundläggande autentiseringsmetod implementering av postman

    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 den universella API-nyckeln/token kan användaren inte ha behörighet till vissa WordPress REST-API:er med begäranmetod som POST, PUT, DELETE som att skapa användare, inlägg, sidor etc, där en viss användarbehörighet/roll krävs för att utföra operationer via användning av REST API-begäran eftersom den universella nyckeln genereras slumpmässigt och inte innehåller den användarbaserade beskrivningen.
    • Så denna användarbaserade API-nyckel/token-funktion tillåter användaren att komma åt REST-API:erna med begäranmetoden som POST, PUT, DELETE i WordPress som kräver användaruppgifter eller vissa roller för att utföra operationen så att när WordPress REST API-begäran görs med den användarbaserade nyckeln erhålls användarens roll och han kommer att få tillgång till API:t endast om han har tillstånd 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.
    • Så här använder du den här funktionen:

    • Välj användaren från rullgardinsmenyn och klicka på knappen Skapa API-nyckel.
    • WordPress REST API grundläggande autentiseringsmetod implementering av postman
    • En popup kommer att visas på skärmen, du behöver bara klicka på OK-knappen för att kopiera token.
    • WordPress REST API grundläggande autentiseringsmetod implementering av postman
    • 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.

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.

Rekommenderade plugins

WordPress REST API Authentication plugin ger säkerheten för obehörig åtkomst till dina WordPress REST API:er. Det ger dig en mängd olika autentiseringsmetoder som grundläggande autentisering, API-nyckelautentisering, OAuth 2.0-autentisering, JWT-autentisering.

 Testad med 5.9.2

Denna plugin låter dig skapa anpassade slutpunkter/REST-rutter för att hämta/modifiera/skapa/ta bort data med ett lättanvänt grafiskt gränssnitt och även med anpassade SQL-frågor. Plugin-programmet tillhandahåller också funktionen för att integrera extern API i din WordPress-webbplats med tredjepartsplattformar.

 Testad med 5.9.2
Hej där!

Behövs hjälp? Vi är här!

stödja
Kontakta miniOrange Support
framgång

Tack för din förfrågan.

Om du inte hör från oss inom 24 timmar, skicka gärna ett uppföljningsmail till info@xecurify.com