El complemento de autenticación de API REST de WordPress brinda seguridad contra el acceso no autorizado a sus API REST de WordPress.
Resultados de la búsqueda :
×Este método de autenticación de puntos finales de la API REST de WordPress implica el acceso a las API REST en la validación basada en el JWT (token web JSON). Cada vez que se realice una solicitud para acceder al punto final de la API REST de WordPress, la autenticación se realizará contra ese token JWT. y sobre la base de la verificación de ese token JWT, se permitirá el acceso a los recursos para esa solicitud de API. El token JWT se genera en función de las credenciales de usuario de WordPress y está altamente cifrado, por lo que la seguridad no se ve comprometida.
El complemento de autenticación de API REST de WordPress brinda seguridad contra el acceso no autorizado a sus API REST de WordPress.
Suponga que tiene una aplicación móvil/web y desea permitir el acceso a los puntos finales de la API REST de WordPress en función de las capacidades del usuario, de modo que solo los usuarios con esa capacidad particular deben realizar operaciones de creación/actualización, mientras que los usuarios con otros roles solo pueden ver eso. Luego, en tales casos, puede autenticar los puntos finales de la API REST utilizando los JWT (tokens web JSON) obtenidos de acuerdo con las credenciales del usuario y la autenticación JWT de WordPress le permite hacerlo de forma muy segura. Por lo tanto, realizar la solicitud de API REST con este JWT pasado en el encabezado Autorización permite el acceso al recurso/datos o proporciona la capacidad/autorización para realizar operaciones de WordPress que requieren una capacidad particular del usuario. JWT Authentication para WordPress REST API proporciona el cifrado del token utilizando 2 métodos: HSA o RSA y es válido por un tiempo limitado. Por tanto, la seguridad no es una preocupación.
El token JWT generado para la autenticación JWT consta de información de usuario de WordPress y, por lo tanto, este token se puede decodificar utilizando la clave secreta/certificado público válido en otra aplicación para crear un usuario allí o sincronizar información de usuario actualizada. El token JWT también es un token basado en el tiempo, lo que significa que caduca después de un cierto período de tiempo que se puede configurar según los requisitos y, por lo tanto, después de su vencimiento, no se permitirá el acceso a las API y tampoco se podrá decodificar la información del usuario, lo que hace Autenticación JWT para WordPress REST API un método de autenticación seguro.
1. La solicitud de la API REST de WordPress se realiza con todos los parámetros requeridos para obtener el token JWT. El token JWT obtenido se proporciona en formato cifrado utilizando el algoritmo HSA o RSA, por lo que habrá la máxima seguridad.
2. Luego, la solicitud real de la API REST de WordPress para acceder al recurso/datos o para realizar operaciones con la base de datos de WordPress se realiza con el token JWT obtenido en el último paso, se pasa en el encabezado Autorización con los tipos de token como Portador y nuestro complemento valide ese token JWT y, si la validación o autenticación es exitosa, se proporcionará el recurso al solicitante de API; de lo contrario, se devolverá una respuesta de error. Por lo tanto, nuestro complemento actuará como proveedor de token JWT y como validador de token JWT.
Caso de uso relacionado:
Request:POST https://<domain-name>/wp-json/api/v1/token
Body:username = <wordpress username>
password = <wordpress password>
Sample curl Request Format-
curl -d "username=<wordpress_username>&password=<wordpress_password>"
-X POST http://<wp_base_url>/wp-json/api/v1/token
Estos puntos finales de API también se denominan autenticación de usuario API o Punto final de la API de inicio de sesión de WordPress de modo que si realizamos una solicitud a este punto final con las credenciales de usuario de WordPress y si las credenciales son válidas, la respuesta exitosa regresará con el token JWT; de lo contrario, la respuesta de error se mostrará en consecuencia.
Request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization : Bearer <JWT token>
Sample curl Request Format-
curl -H "Authorization:Bearer <jwt_token >"
-X GET http://<wp_base_url>/wp-json/wp/v2/posts
¡Felicidades! Ha configurado correctamente el método de autenticación JWT para llamadas de API REST utilizando el método de autenticación de API REST de miniOrange WordPress.
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", "Bearer < jwt_token >");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/wp/v2/posts ")
.method("GET", null)
.addHeader = ("Authorization", "Bearer < jwt_token >")
.build();
Response response= client.newCall(request).execute();
var settings = {
"url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "Bearer < jwt_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: Bearer < jwt_token >'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import http.client
conn = http.client.HTTPSConnection("<wp_base_url>")
payload= "
headers = {
'Authorization': 'Bearer < jwt_token >'
}
conn.request("GET", "/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/api/v1/token ");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AlwaysMultipartFormData = true;
request.AddParameter("username", "<wordpress_username>");
request.AddParameter("password", "<wordpress_password>");
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", "<wordpress_username>");
.addFormDataPart("password", "<wordpress_password>");
.build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/api/v1/token ")
.method("POST", body)
.build();
Response responseclient.newCall(request).execute();
var form = new FormData();
form.append("username", "<wordpress_username>");
form.append("password", "<wordpress_password>");
var settings = {
"url": "http://<wp_base_url>/wp-json/api/v1/token ",
"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/api/v1/token%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('username' => '<wordpress_username>','password' => '<wordpress_password>'),
));
$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("<wordpress_username>"))
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("<wordpress_password>"))
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/api/v1/token", payload, headers)
res= conn.getresponse()
data = res.read()
print (data.decode("utf-8"))
Siga los pasos a continuación para realizar una solicitud de API REST utilizando Postman:
1. Restricción de API REST basada en roles:
Esta característica permite restringir el acceso a la API REST según los roles de usuario. Puede incluir en la lista blanca los roles para los que desea permitir el acceso al recurso solicitado para las API REST. Entonces, cada vez que un usuario realiza una solicitud de API REST, se recuperará su función y solo se le permitirá acceder al recurso si su función está en la lista blanca.
¿Cómo configurarlo?
Nota: La función de restricción basada en roles es válida para autenticación básica (nombre de usuario: contraseña), método JWT y OAuth 2.0 (concesión de contraseña).
2. Encabezado personalizado
Esta característica proporciona una opción para elegir un encabezado personalizado en lugar del encabezado predeterminado "Autorización".
Aumentará la seguridad ya que el encabezado tiene el nombre de su "nombre personalizado", por lo que si alguien realiza la solicitud de API REST con un encabezado como "Autorización", no podrá acceder a las API.
¿Cómo configurarlo?
3. Excluir las API REST
Esta característica le permite incluir sus API REST en la lista blanca para que se pueda acceder a ellas directamente sin ninguna autenticación. Por lo tanto, todas estas API REST incluidas en la lista blanca están disponibles públicamente.
¿Cómo configurarlo?
4. Caducidad del token personalizado
Esta característica es aplicable a los métodos JWT y OAuth 2.0 que utilizan tokens basados en el tiempo para autenticar los puntos finales de la API REST de WordPress. Esta función le permite establecer el vencimiento personalizado para los tokens, de modo que el token ya no será válido una vez que caduque.
¿Cómo configurarlo?
Por lo tanto, con esta función de caducidad de token personalizada, la seguridad aumenta aún más.
5. Validación de firma para tokens basados en JWT
Esta característica permite una firma segura de la firma JWT para el token JWT, de modo que su token JWT sea mucho más seguro y la firma solo se pueda decodificar utilizando el secreto/certificado del cliente. Significa que su firma es privada y otros no pueden verla.
Brindamos soporte para 2 algoritmos de firma: HS256 y RS256. Por lo tanto, cualquiera de los algoritmos de firma se puede elegir en el menú desplegable como se muestra en la imagen de arriba.
Además, debe agregar su secreto de cliente o certificado desde el cual se utiliza para firmar la firma del JWT.
Envíenos un correo electrónico a apisupport@xecurify.com para obtener orientación rápida (por correo electrónico/reunión) sobre sus necesidades y nuestro equipo le ayudará a seleccionar la mejor solución/plan adecuado según sus necesidades.
¿Necesitas ayuda? ¡Estamos aquí!
Gracias por su consulta.
Si no recibe noticias nuestras dentro de las 24 horas, no dude en enviar un correo electrónico de seguimiento a info@xecurify.com
Esta declaración de privacidad se aplica a los sitios web de miniorange que describen cómo manejamos la información personal. Cuando visita cualquier sitio web, este puede almacenar o recuperar información en su navegador, principalmente en forma de cookies. Esta información puede ser sobre usted, sus preferencias o su dispositivo y se utiliza principalmente para que el sitio funcione como usted espera. La información no lo identifica directamente, pero puede brindarle una experiencia web más personalizada. Haga clic en los encabezados de las categorías para comprobar cómo manejamos las cookies. Para conocer la declaración de privacidad de nuestras soluciones, puede consultar la políticas de privacidad.
Las cookies necesarias ayudan a que un sitio web sea totalmente utilizable al permitir funciones básicas como navegación en el sitio, iniciar sesión, completar formularios, etc. Las cookies utilizadas para la funcionalidad no almacenan ninguna información de identificación personal. Sin embargo, algunas partes del sitio web no funcionarán correctamente sin las cookies.
Estas cookies solo recopilan información agregada sobre el tráfico del sitio web, incluidos visitantes, fuentes, clics y visitas a la página, etc. Esto nos permite saber más sobre nuestras páginas más y menos populares junto con la interacción de los usuarios en los elementos procesables y, por lo tanto, permitirnos mejorar el rendimiento de nuestro sitio web y nuestros servicios.