Das WordPress-REST-API-Authentifizierungs-Plugin bietet Sicherheit vor unbefugtem Zugriff auf Ihre WordPress-REST-APIs.
Suchergebnisse :
×Mit der WordPress-REST-API-Basisauthentifizierung können Sie den Zugriff auf die WordPress-REST-APIs überprüfen, indem Sie ein API-Token validieren, das aus dem Benutzernamen, dem Passwort oder den Client-Anmeldeinformationen generiert wird.
Immer wenn eine Anfrage zum Zugriff auf einen WordPress-REST-API-Endpunkt gestellt wird, wird diese einer Authentifizierung anhand des zugehörigen Tokens unterzogen. Anschließend wird der Zugriff auf die Ressourcen für diese spezifische API-Anfrage basierend auf der erfolgreichen Validierung dieses API-Tokens bestimmt. Um die Sicherheit zu gewährleisten, wird das Zugriffstoken verschlüsselt, um Sicherheits-/Datenverletzungen zu verhindern.
Das WordPress-REST-API-Authentifizierungs-Plugin bietet Sicherheit vor unbefugtem Zugriff auf Ihre WordPress-REST-APIs.
1. Basierend auf Benutzeranmeldeinformationen:
Angenommen, Sie verfügen über eine Android-/iOS-App und haben Ihren Benutzern die Funktion gegeben, ihre persönlichen Feeds oder Blogs in der mobilen App zu veröffentlichen.
In diesem Fall sollten Anfragen auf Ihrer mobilen App authentifiziert werden.
Die WordPress Basic Authentication REST API mit Benutzername und Passwort ist für diesen Fall die beste Authentifizierungsmethode. Es wird hilfreich sein, WordPress-Vorgänge über REST-APIs auszuführen, die Benutzerberechtigungen oder -funktionen erfordern.
Die Benutzersitzung wird erstellt und auf der Grundlage ihrer WordPress-Funktionen wird es ihm/ihr ermöglicht, auf den REST-API-Inhalt zuzugreifen oder die gewünschten Vorgänge auszuführen.
2. Basierend auf den Anmeldeinformationen des Kunden:
Stellen Sie sich vor, Sie haben eine Android- oder iOS-Anwendung und möchten über deren REST-API-Endpunkte mit WordPress-Inhalten interagieren. Allerdings scheuen Sie sich davor, WP-Benutzeranmeldeinformationen zu verwenden, um eine potenzielle Gefährdung zu verhindern, die es einem Eindringling ermöglichen könnte, sich unbefugten Zugriff auf die WP-Site zu verschaffen.
In einem solchen Szenario ist es ratsam, die WordPress Basic Authentication Rest API zu verwenden und eine Client-ID und ein Client-Geheimnis zu verwenden, um Ihre WP-Benutzeranmeldeinformationen zu schützen.
Bei dieser Methode müssen Sie in jeder Anfrage nur die vom Plugin bereitgestellte Client-ID und das Client-Geheimnis angeben. Folglich bleibt die Sicherheit kompromisslos, da die Client-ID und das Geheimnis in einem verschlüsselten Format im Basic Authorization-Header jeder API-Anfrage übertragen werden. Diese Anmeldeinformationen werden dann validiert und nach erfolgreicher Validierung gewährt WP API Basic Auth Zugriff auf die angeforderten APIs.
REST-API-Basisauthentifizierung mit Benutzername und Passwort:
REST-API-Basisauthentifizierung mit Client-ID und Client-Geheimnis:
Request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization: Basic base64encoded <client-id:client-secret>
Sample Request Format-
Example => Client ID : pSYQsKqTndNVpNKcnoZd and Client Secret : SrYPTViHdCbvkWyTfWrSltavTMeJjaOHCye
Sample curl Request Format-
curl -H "Authorization:Basic base64encoded <clientid:clientsecret>"
-X POST http://<wp_base_url>/wp-json/wp/v2/users
-d"username=test&email=test@test.com&password=test&name=test"
base64_encode(‘pSYQsKqTndNVpNKcnoZd:SrYPTViHdCbvkWyTfWrSltavTMeJjaOHCye’) will results into
‘cFNZUXNLcV RuZE5WcE5LY25vWmQ6U3JZUFRWaUhkQ2J2a1d5VGZXclNsdGF2VE1lSmphT0hDeWU=’ as output.
Sample request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization :Basic eGw2UllOdFN6WmxKOlNMRWcwS1ZYdFVrbm5XbVV2cG9RVFNLZw==
REST-API-Basisauthentifizierung mit Benutzername und Passwort:
Request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization: Basic base64encoded <username:password>
Sample Request Format-
Example => username : testuser and password : password@123
Sample curl Request Format-
curl -H "Authorization:Basic base64encoded <username:password>"
-X POST http://<wp_base_url>/wp-json/wp/v2/posts -d "title=sample post&status=publish"
base64_encode(‘testuser:password@123’) will results into ‘eGw2UllOdFN6WmxKOlNMRWcwS1ZYdFVrbm5XbVV2cG9RV FNLZw==’ as output.
Sample request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization : Basic eGw2UllOdFN6WmxKOlNMRWcwS1ZYdFVrbm5XbVV2cG9RVFNLZw==
var client = new RestClient("http://<wp_base_url>/wp-json/wp/v2/posts ");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AlwaysMultipartFormData = true;
request.AddParameter("title", "Sample Post");
request.AddParameter("status", "publish");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("title","Sample Post")
.addFormDataPart("status", "publish")
.build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/wp/v2/posts ")
.method("POST", body)
.build();
Response responseclient.newCall(request).execute();
var form = new FormData();
form.append("title","Sample Post");
form.append("status", "publish");
var settings = {
"url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
"method": "POST",
"timeout": 0,
"processData": false,
"mimeType": "multipart/form-data",
"contentType": false,
"data": form
};
$.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 => 'POST',
CURLOPT_POSTFIELDS => array('title' => 'Sample Post','status' => 'publish'),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import http.client
import mimetypes
from codecs import encode
conn = http.client.HTTPSConnection("<wp_base_url>")
dataList= []
boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=title;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("Sample Post"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=status;'))
dataList.append('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("publish"))
dataList.append(encode('--'+boundary+'--'))
dataList.append(encode(''))
body = b'\r\n'.join(dataList)
payload= body
headers = {
'Content-type': 'multipart/form-data; boundary={}'.format(boundary)
}
conn.request("POST", "/wp-json/wp/v2/posts ", payload, headers)
res= conn.getresponse()
data = res.read()
print (data.decode("utf-8"))
var client = new RestClient("http://<wp_base_url>/wp-json/wp/v2/posts ");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic base64encoded < clientid:clientsecret > ");
request.AlwaysMultipartFormData = true;
request.AddParameter("username", "test");
request.AddParameter("email", "test@test.com");
request.AddParameter("password", "test");
request.AddParameter("name", "test");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("username","test")
.addFormDataPart("email","test@test.com")
.addFormDataPart("password","test")
.addFormDataPart("name","test")
.build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/wp/v2/posts ")
.method("POST", body)
.addHeader ("Authorization", "Basic base64encoded < clientid:clientsecret > ")
.build();
Response responseclient.newCall(request).execute();
var form = new FormData();
form.append("username", "test");
form.append("email", "test@test.com");
form.append("password", "test");
form.append("name", "test");
var settings = {
"url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
"method": "POST",
"timeout": 0,
"headers": {
"Authorization": "Basic base64encoded < clientid:clientsecret > "
},
"processData": false,
"mimeType": "multipart/form-data",
"contentType": false,
"data": form
};
$.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/users',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('username' => 'test','email' => 'test@test.com','password' => 'test','name' => 'test'),
CURLOPT_HTTPHEADER => array(
'Authorization: Basic base64encoded < clientid:clientsecret > '
),
))
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import http.client
import mimetypes
from codecs import encode
conn = http.client.HTTPSConnection("<wp_base_url>")
dataList= []
boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=username;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("test"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=email;'))
dataList.append('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("test@test.com"))
dataList.append(encode('--'+ boundary))
dataList.append(encode('Content-Disposition: form-data; name=password;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("test"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=name;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("test"))
dataList.append(encode('--'+boundary+'--'))
dataList.append(encode(''))
body = b'\r\n'.join(dataList)
payload= body
headers = {
'Authorization': 'Basic base64encoded < clientid:clientsecret > ',
'Content-type': 'multipart/form-data; boundary={}'.format(boundary)
}
conn.request("POST", "/wp-json/wp/v2/posts ", payload, headers)
res= conn.getresponse()
data = res.read()
print (data.decode("utf-8"))
Führen Sie die folgenden Schritte aus, um eine REST-API-Anfrage mit Postman zu stellen:
a) Für Benutzername-Passwort
Beispiel:
Für Benutzername: testuser und Passwort: passwort@123 lautet der Base64-codierte Wert „dGVzdHVzZXI6cGFzc3dvcmRAMTIz“.
b) Für Client-ID und Client-Geheimnis
Mit dieser Funktion können Sie den REST-API-Zugriff entsprechend den Benutzerrollen einschränken. Sie haben die Möglichkeit, die Rollen anzugeben, die über REST-APIs auf die angeforderte Ressource zugreifen dürfen. Wenn ein Benutzer daher eine REST-API-Anfrage stellt, wird seine Rolle überprüft und der Zugriff auf die Ressource wird ausschließlich dann gewährt, wenn seine Rolle in der Whitelist enthalten ist.
Wie konfiguriere ich es?
Hinweis: Die rollenbasierte Einschränkungsfunktion gilt für die Standardauthentifizierung (Benutzername: Passwort), die JWT-Methode und OAuth 2.0 (Passwortgewährung).
Diese Funktion bietet die Möglichkeit, anstelle der Standardkopfzeile eine personalisierte Kopfzeile auszuwählen 'Genehmigung' Header. Dies erhöht die Sicherheit, da Sie den Header nach Ihren Wünschen benennen können. Wenn also jemand versucht, eine REST-API-Anfrage mit einem Header namens 'Genehmigung,' Sie dürfen auf die APIs zugreifen.
Wie konfiguriere ich es?
Mit dieser Funktion können Sie bestimmte REST-APIs als Whitelist kennzeichnen, sodass direkt auf sie zugegriffen werden kann, ohne dass eine Authentifizierung erforderlich ist. Folglich werden alle diese auf der Whitelist aufgeführten REST-APIs öffentlich zugänglich.
Wie konfiguriere ich es?
Diese Funktion wird im Rahmen der Standardauthentifizierungsmethode angeboten, bei der das Token normalerweise standardmäßig mit Base64-Kodierung verschlüsselt wird. Mit der erweiterten Option kann der Token jedoch mit dem hochsicheren HMAC-Verschlüsselungsverfahren verschlüsselt werden, was ein sehr hohes Maß an Sicherheit gewährleistet.
Mailen Sie uns weiter oauthsupport@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.
Brauchen Sie Hilfe? Wir sind hier!
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
Diese Datenschutzerklärung gilt für miniorange-Websites und beschreibt, wie wir mit personenbezogenen Daten umgehen. Wenn Sie eine Website besuchen, werden möglicherweise Informationen in Ihrem Browser gespeichert oder abgerufen, meist in Form von Cookies. Diese Informationen können sich auf Sie, Ihre Vorlieben oder Ihr Gerät beziehen und werden hauptsächlich dazu verwendet, dass die Website so funktioniert, wie Sie es erwarten. Die Informationen identifizieren Sie nicht direkt, können Ihnen aber ein personalisierteres Web-Erlebnis ermöglichen. Klicken Sie auf die Kategorieüberschriften, um zu erfahren, wie wir mit Cookies umgehen. Die Datenschutzerklärung unserer Lösungen finden Sie in der Datenschutz.
Notwendige Cookies tragen dazu bei, eine Website vollständig nutzbar zu machen, indem sie grundlegende Funktionen wie Seitennavigation, Anmelden, Ausfüllen von Formularen usw. ermöglichen. Die für diese Funktionalität verwendeten Cookies speichern keine personenbezogenen Daten. Einige Teile der Website funktionieren jedoch ohne Cookies nicht ordnungsgemäß.
Diese Cookies sammeln nur aggregierte Informationen über den Verkehr auf der Website, einschließlich Besucher, Quellen, Seitenklicks und -aufrufe usw. Dies ermöglicht es uns, mehr über unsere beliebtesten und am wenigsten beliebten Seiten sowie über die Interaktion der Benutzer mit den umsetzbaren Elementen und damit über die Veröffentlichung zu erfahren Wir verbessern die Leistung unserer Website sowie unserer Dienste.