Suchergebnisse :

×

WordPress-REST-API-Authentifizierung mithilfe eines Drittanbieters


Die WordPress-REST-API-Authentifizierung mithilfe der Methode eines Drittanbieters umfasst die Verwendung von Token (Zugriffstoken/ID-Token/JWT-Token), die von Drittanbietern wie Google, Facebook, Firebase, Apple, Azure AD, Keycloak, Okta, AWS Cognito erhalten werden , Github, Slack, Gitlab usw. für den sicheren Zugriff auf die WordPress-Rest-API.

WordPress-Endpunkte sind standardmäßig nicht sicher und Daten können über REST-APIs im JSON-Format gestohlen werden. Mit der WordPress-REST-API-Authentifizierung können Sie REST-APIs mit mehreren Sicherheitsmethoden wie Basic Auth, API KEY, JWT-Token und OAuth-Token aufrufen. In diesem Leitfaden verwenden wir das von OAuth/OpenID Connect/Firebase-Anbietern ausgegebene OAuth-Token, um die REST-API-Anfragen zu validieren, wodurch Ihre WordPress-Website geschützt und sicher bleibt.
Jedes Mal, wenn eine Anfrage zum Zugriff auf die REST-API gestellt wird, erfolgt die Authentifizierung anhand des von Drittanbietern wie Google, Facebook, Firebase, Apple, Okta usw. ausgegebenen Tokens und auf der Grundlage der Validierung der API Token wird den Ressourcen für diese REST-API-Anfrage der Zugriff gestattet. Das einzelne Token, das Sie nach der SSO-Anmeldung für Ihre App erhalten haben, kann also weiter für den Zugriff auf WP-REST-API-Endpunkte verwendet werden.


WordPress Rest API-Authentifizierung
Von miniOrange

Das WordPress-REST-API-Authentifizierungs-Plugin bietet Sicherheit vor unbefugtem Zugriff auf Ihre WordPress-REST-APIs.

Weitere Informationen

Voraussetzungen: Download und Installation


  • Melden Sie sich als Administrator bei Ihrer WordPress-Instanz an.
  • Gehen Sie zu WordPress Dashboard ➜ Plugins und klicken Sie auf Neu hinzufügen.
  • Suchen Sie nach einem WordPress REST API-Authentifizierung Plugin und klicken Sie auf Jetzt installieren.
  • Klicken Sie nach der Installation auf Mehr erfahren.

Anwendungsfall: Authentifizieren/schützen Sie WordPress-REST-API-Endpunkte mithilfe des JWT-Tokens, das Sie von Social Login/OAuth 2.0/OpenID Connect Identity-Anbietern (Server) erhalten haben.

  • Angenommen, Sie verfügen über eine mobile Android-/iOS-Anwendung und haben Ihrem Benutzer ermöglicht, sich bei mehreren Social-Login-Anbietern wie Google, Facebook, Apple, Linkedin, Instagram oder anderen OAuth/OpenID Connect-Anbietern wie AWS Cognito, Auth0, Microsoft Azure, Okta, anzumelden. Keycloak, Firebase usw. und Sie möchten, dass Ihre Benutzer von den mobilen Anwendungen aus auf die WordPress-REST-API-Endpunkte zugreifen können, sodass Sie die Authentifizierung des Zugriffs auf die WordPress-REST-API-Endpunkte basierend auf dem Zugriffs-/ID-Token (JWT-Token) durchführen können, das von der OAuth/ OpenID Connect-Identitätsanbieter (Server) während Single Sign On (SSO) für die Anmeldung bei Ihrer Anwendung. Daher wird das Zugriffs-/ID-Token/JWT im Authorization-Header der API-Anfrage mit dem Token-Typ „Bearer“ übergeben und die Validierung dieses Tokens erfolgt direkt über die entsprechenden OAuth/OpenId Connect/Firebase Identity-Anbieter. Daher wird die Validierungsanfrage intern an den entsprechenden OAuth/OpenID Connect-Server gestellt. Wenn die Validierung dieses Tokens erfolgreich ist, führt die REST-API-Anfrage zu einem Ressourcen-/Datenzugriff, und wenn die Validierung fehlschlägt, wird die Fehlerantwort zurückgegeben. Auf diese Weise können die Ressourcen/Daten mit höchster Sicherheit durch Authentifizierung direkt von OAuth/OpenID Connect Identity-Anbietern geschützt werden.

  • WordPress-REST-API-Authentifizierung mithilfe der Schlüsselmethode eines Drittanbieters
  • Wie dieser Anwendungsfall für die Authentifizierung mit unserem Plugin erreicht werden kann:
    • 1. Die WordPress-REST-API-Endpunktanforderung erfolgt mit dem Zugriffs-/ID-Token, das von den OAuth/OpenID Connect-Identitätsanbietern erhalten wurde und im Autorisierungsheader mit dem Tokentyp „Bearer“ übergeben wird.

      2. Die WordPress-REST-API-Anfrage wird von unserem Plugin überwacht und die JWT-Token-Validierungs-/Authentifizierungsanforderung wird an den OAuth/OpenID Connect Identity-Anbieter (Server) gesendet.

      3. Die Antwort wird vom OAuth/OpenID Connect Identity-Anbieter (Server) für die zuvor gestellte Anfrage zur Validierung des JWT-Tokens zurückgegeben.

      4. Wenn die JWT-Token-Validierung/Authentifizierung erfolgreich ist, darf auf die angeforderte Ressource zugegriffen werden, was bedeutet, dass der Anforderer nun berechtigt ist, auf die Ressource/Daten zuzugreifen. Wenn die Token-Validierung fehlschlägt, wird eine Fehlerantwort zurückgegeben . Die Ressourcendaten sind nun geschützt und können nach Autorisierung abgerufen werden, sodass die Sicherheit kein Problem darstellt.


    Verwandter Anwendungsfall: Wie kann verhindert werden, dass WordPress-REST-API-Endpunkte das von Social Login oder OAuth2.0/OpenID Connect-Identitätsanbietern bereitgestellte JWT-Token verwenden?


    Wie kann eine Authentifizierung durchgeführt und die Sicherheit gewährleistet oder eine Autorisierung durchgeführt werden, um Zugriff auf die WordPress-REST-API-Endpunkte auf der Grundlage des Zugriffs-/ID-Tokens zu gewähren, das von Social-Login-/OAuth-Anbietern während des OAuth/OpenID-SSO-Anmeldevorgangs bereitgestellt wird?

Lesen Sie Anwendungsfälle für die folgenden Rest-API-Authentifizierungsmethoden:

Schritt 1: Richten Sie das WordPress REST API-Authentifizierungs-Plugin ein

    • Wählen Sie Ihre Authentifizierungsmethode →Drittanbieter und fügen Endpunkt der Selbstbeobachtung Klicken Sie auf die von Ihrem OAuth/OpenID Connect-Anbieter bereitgestellte Datei Konfiguration speichern.
    • WordPress-REST-API-Authentifizierung mithilfe der Schlüsselmethode eines Drittanbieters
    • Nachdem Sie das Plugin mit dem von Ihrem Anbieter bereitgestellten Introspection Endpoint konfiguriert haben, versuchen Sie, wie unten gezeigt mit dem von Ihrem OAuth-Anbieter bereitgestellten Zugriffstoken/id_token auf Ihre WordPress-REST-APIs zuzugreifen.
    • Request: GET https://<domain-name>/wp-json/wp/v2/posts
      Header: 
      access_token : < access_token >
      OR
      id_token  : < id_token  >
      
    • Probieren Sie auch die Entwicklerdokumentation für weitere Informationen an.

miniorange img Codebeispiele in Programmiersprachen


 
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"))   

Postboten-Beispiele:

    Führen Sie die folgenden Schritte aus, um eine REST-API-Anfrage mit Postman zu stellen:

  • Sie können das Beispiel-Postman-Anfrageformat unter herunterladen hier.
  • Extrahieren Sie die heruntergeladene ZIP-Datei und importieren Sie die extrahierte JSON-Datei in die Postman-Anwendung.
  • WordPress-REST-API-Authentifizierung mithilfe der Postman-Implementierung der Methode eines Drittanbieters
  • Ersetzen Sie die < access_token > or <id_token> mit dem entsprechenden von Ihrem OAuth 2.0-Anbieter bereitgestellten Token.
  • Beispiel:
  • WordPress-REST-API-Authentifizierung mithilfe der Drittanbietermethode „Postman“ ersetzt die URL der tatsächlichen Ressource

Feature Beschreibung

    1. Einschränkung der rollenbasierten REST-API:

    Mit dieser Funktion können Sie den REST-API-Zugriff basierend auf den Benutzerrollen einschränken. Sie können die Rollen, für die Sie den Zugriff auf die angeforderte Ressource für die REST-APIs gewähren möchten, auf die Whitelist setzen. Wenn also ein Benutzer eine REST-API-Anfrage stellt, wird seine Rolle abgerufen und darf nur dann auf die Ressource zugreifen, wenn seine Rolle auf der Whitelist steht.


    Wie konfiguriere ich es?

    • Gehen Sie zunächst zur Registerkarte „Erweiterte Einstellungen“ des Plugins.
    • Anschließend wird im Abschnitt „Rollenbasierte Einschränkung“ allen Rollen standardmäßig der Zugriff auf die APIs gestattet. Sie können die Kontrollkästchen der Rollen aktivieren, für die Sie den Zugriff einschränken möchten.
    • Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode
    • Im obigen Screenshot ist das Kontrollkästchen für die Abonnentenrolle aktiviert. Wenn also ein Benutzer mit seiner Rolle als Abonnent eine API-Anfrage stellt, darf dieser Benutzer nicht auf die angeforderte Ressource zugreifen.

    Hinweis: Die rollenbasierte Einschränkungsfunktion gilt für die Standardauthentifizierung (Benutzername: Passwort), die JWT-Methode und OAuth 2.0 (Passwortgewährung).

    2. Benutzerdefinierter Header

    Diese Funktion bietet die Möglichkeit, einen benutzerdefinierten Header anstelle des standardmäßigen „Autorisierungs“-Headers auszuwählen.

    Dies erhöht die Sicherheit, da der Header mit Ihrem „benutzerdefinierten Namen“ benannt wird. Wenn also jemand die REST-API-Anfrage mit dem Header „Autorisierung“ stellt, kann er nicht auf die APIs zugreifen.


    Wie konfiguriere ich es?

    • Gehen Sie zunächst zur Registerkarte „Erweiterte Einstellungen“ des Plugins.
    • Anschließend können Sie im Abschnitt „Benutzerdefinierter Header“ das Textfeld bearbeiten, um den gewünschten benutzerdefinierten Namen einzugeben.
    • Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode

    3. Schließen Sie REST-APIs aus

    Mit dieser Funktion können Sie Ihre REST-APIs auf die Whitelist setzen, sodass auf diese ohne Authentifizierung direkt zugegriffen werden kann. Daher sind alle diese auf der Whitelist aufgeführten REST-APIs öffentlich verfügbar.


    Wie konfiguriere ich es?

    • Gehen Sie zunächst zur Registerkarte „Erweiterte Einstellungen“ des Plugins.
    • Anschließend können Sie unter „REST-APIs ausschließen“ Ihre APIs im vorgeschriebenen Format eingeben, das für den öffentlichen Zugriff auf die Whitelist gesetzt werden muss.
    • Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode
    • Beispiel: Angenommen, Sie möchten die REST-API ausschließen./wp-json/wp/v2/posts‘, dann müssen Sie ‚/wp/v2/posts‘ in das Textfeld eingeben.

    4. Ablauf des benutzerdefinierten Tokens

    Diese Funktion gilt für JWT- und OAuth 2.0-Methoden, die zeitbasierte Token zur Authentifizierung der WordPress-REST-API-Endpunkte verwenden. Mit dieser Funktion können Sie das benutzerdefinierte Ablaufdatum für die Token festlegen, sodass das Token nicht mehr gültig ist, sobald das Token abläuft.


    Wie konfiguriere ich es?

    • Gehen Sie zunächst zur Registerkarte „Erweiterte Einstellungen“ des Plugins.
    • Anschließend können im Abschnitt „Token-Ablaufkonfiguration“ die Gültigkeit des Zugriffstokens und das Aktualisierungstoken (verwendet für die OAuth 2.0-Methode) geändert werden. Standardmäßig ist die Ablaufzeit des Zugriffstokens auf 60 Minuten und die Ablaufzeit des Aktualisierungstokens auf 14 Tage eingestellt. Daher kann mit dieser Funktion der Ablauf entsprechend den Anforderungen angepasst werden.
    • Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode

    Daher wird mit dieser benutzerdefinierten Token-Ablauffunktion die Sicherheit weiter erhöht.

    5. Aktivieren Sie die erweiterte Verschlüsselung für die Token mithilfe von HMAC

    Diese Funktion ist mit der Standardauthentifizierungsmethode verfügbar, bei der das Token standardmäßig mit der Base64-Verschlüsselungstechnik verschlüsselt wird. Mit der erweiterten Funktion kann das Token jedoch mit der hochsicheren HMAC-Verschlüsselung verschlüsselt werden, die sehr sicher ist.

    Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode

    6. Signaturvalidierung für JWT-basierte Token

    Diese Funktion ermöglicht eine sichere Signierung der JWT-Signatur für das JWT-Token, sodass Ihr JWT-Token viel sicherer ist und die Signatur nur mithilfe des Client-Geheimnisses/-Zertifikats entschlüsselt werden kann. Das bedeutet, dass Ihre Signatur privat ist und für andere nicht sichtbar ist.

    Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode

    Wir bieten Unterstützung für zwei Signaturalgorithmen: HS2 und RS256. Daher kann jeder der Signaturalgorithmen aus der Dropdown-Liste ausgewählt werden, wie im obigen Bild gezeigt.

    Außerdem müssen Sie Ihr Client-Geheimnis oder Zertifikat hinzufügen, das zum Signieren der Signatur des JWT verwendet wird.

    7. Erstellen Sie benutzerspezifische API-Schlüssel/Tokens

    • Diese Funktion ist innerhalb der API-Schlüsselmethode verfügbar, bei der die Token gemäß den Benutzerinformationen generiert werden können, anstatt eines zufällig generierten Tokens, das ein universeller Schlüssel ist.
    • Mit dem universellen API-Schlüssel/Token kann der Benutzer keine Berechtigung für bestimmte WordPress-REST-APIs mit Anforderungsmethoden wie POST, PUT, DELETE haben, z. B. zum Erstellen von Benutzern, Beiträgen, Seiten usw., bei denen zum Ausführen von Vorgängen bestimmte Benutzerberechtigungen/-rollen erforderlich sind über die Verwendung der REST-API-Anfrage, da der Universalschlüssel zufällig generiert wird und keine benutzerbasierte Beschreibung enthält.
    • Diese benutzerbasierte API-Schlüssel-/Token-Funktion ermöglicht es dem Benutzer also, mit der Anforderungsmethode POST, PUT, DELETE in WordPress auf die REST-APIs zuzugreifen, was Benutzeranmeldeinformationen oder bestimmte Rollen erfordert, um den Vorgang so auszuführen, dass die WordPress-REST-API-Anfrage gestellt wird Mit dem benutzerbasierten Schlüssel wird dann die Rolle des Benutzers erhalten und er darf nur dann auf die API zugreifen, wenn er dazu berechtigt ist.
    • Zum Beispiel: Nur Benutzer mit Administrator- und Editor-Rollen haben die Berechtigung zum Erstellen/Bearbeiten/Löschen eines Beitrags.
    • Wenn also eine Anfrage an diese API zum Erstellen/Löschen/Bearbeiten des Beitrags gestellt wird, lautet die API-Antwort „Sie sind nicht berechtigt, diesen Vorgang auszuführen“.
    • Wenn nun eine Anfrage mit dem benutzerbasierten Token gestellt wird, das für den Benutzer generiert wurde, der die Administrator- oder Editor-Rolle hat, hat nur dieser Zugriff auf diese API und kann den Vorgang (Erstellen/Aktualisieren/Löschen) über den API-Aufruf ausführen.
    • So nutzen Sie diese Funktion:

    • Wählen Sie den Benutzer aus der Dropdown-Liste aus und klicken Sie auf die Schaltfläche „API-Schlüssel erstellen“.
    • Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode
    • Auf dem Bildschirm erscheint ein Popup. Sie müssen nur auf die Schaltfläche „OK“ klicken, um den Token zu kopieren.
    • Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode
    • Jetzt kann dieses Token mit der API-Anfrage verwendet werden, genau wie der Universalschlüssel zum Stellen der API-Anfrage verwendet wird.

Mailen Sie uns weiter apisupport@xecurify.com Für eine schnelle Beratung (per E-Mail/Besprechung) zu Ihren Anforderungen hilft Ihnen unser Team bei der Auswahl der für Ihre Anforderungen am besten geeigneten Lösung/Plan.

Empfohlene Plugins

Das WordPress-REST-API-Authentifizierungs-Plugin bietet Sicherheit vor unbefugtem Zugriff auf Ihre WordPress-REST-APIs. Es bietet Ihnen eine Vielzahl von Authentifizierungsmethoden wie Basisauthentifizierung, API-Schlüsselauthentifizierung, OAuth 2.0-Authentifizierung und JWT-Authentifizierung.

 Getestet mit 5.9.2

Mit diesem Plugin können Sie benutzerdefinierte Endpunkte/REST-Routen zum Abrufen/Ändern/Erstellen/Löschen von Daten über eine benutzerfreundliche grafische Oberfläche und auch mit benutzerdefinierten SQL-Abfragen erstellen. Außerdem bietet das Plugin die Funktion, externe APIs mit Plattformen von Drittanbietern in Ihre WordPress-Site zu integrieren.

 Getestet mit 5.9.2
Hallo!

Brauchen Sie Hilfe? Wir sind hier!

Support
Kontaktieren Sie den miniOrange-Support
Erfolg

Vielen Dank für Ihre Anfrage.

Wenn Sie innerhalb von 24 Stunden nichts von uns hören, können Sie gerne eine Folge-E-Mail an senden info@xecurify.com