Resultados de la búsqueda :

×

Guía para proteger las API REST de WordPress con autenticación básica

Autenticación básica de WordPress para API REST Protege el acceso a los endpoints de WordPress validando las solicitudes de API con un token generado a partir de un nombre de usuario y contraseña o credenciales de cliente. Este método de autenticación confirma la identidad del usuario al interactuar con el servicio web, garantizando así que solo los usuarios autorizados puedan acceder a la API REST de WordPress.



El complemento de autenticación básica de WordPress ayuda a proteger las API REST mediante la autenticación básica. Con este método, cada solicitud de API envía credenciales (nombre de usuario o correo electrónico y contraseña) codificadas en base64, lo que garantiza una comunicación segura entre su sitio de WordPress y las aplicaciones externas.


Autenticación de la API REST de WordPress

El plugin de autenticación de la API REST de WordPress protege contra el acceso no autorizado a tus API REST de WordPress. Nuestro plugin ofrece múltiples métodos de autenticación, como autenticación básica, autenticación mediante clave API, autenticación OAuth 2.0 y autenticación JWT.

Para saber más   


Para configurar la autenticación básica de WP API, debe instalar un Complemento de autenticación de API REST de WordPressEste complemento permite que la API REST de WordPress acepte credenciales de autenticación básica para un acceso seguro.


Guía paso por paso:


  • Paso 1: instale el complemento Busca "Autenticación de API REST para WP" en el repositorio de plugins de WordPress e instálalo. Este plugin habilitará la autenticación básica de la API REST en tu sitio.
  • Paso 2: active el complemento - Una vez instalado, active el complemento desde su panel de WordPress yendo a Complementos → Complementos instalados y haciendo clic en "Activar" junto al complemento de autenticación de API REST.
  • Paso 3: Configurar la autenticación Abra la configuración del plugin y siga los pasos para configurar la autenticación básica para su API REST. Vaya a la página de configuración del plugin para configurar su método de autenticación.


1. Uso de nombre de usuario y contraseña para una interacción segura con la API REST de WordPress


Si está desarrollando una aplicación para Android o iOS que permite a los usuarios publicar sus propios feeds o blogs, garantizar interacciones seguras y autenticadas con la API REST de WordPress es crucial.

Cómo gestionar de forma segura la autenticación de usuarios:

  • Utilice la autenticación básica de WordPress: Implemente la API REST de autenticación básica de WordPress con los nombres de usuario y las contraseñas de los usuarios. Este método garantiza la autenticación segura de las solicitudes realizadas a través de su aplicación.
  • Autenticar solicitudes de usuario: Cuando un usuario inicia sesión en su aplicación, se crea una sesión y las credenciales del usuario se envían en un formato cifrado dentro del encabezado de Autorización básica.
  • Administrar permisos: Según los permisos de WordPress del usuario, la API REST determina las acciones que puede realizar y el contenido al que puede acceder. Esto ayuda a controlar las capacidades del usuario y a mantener interacciones seguras con su sitio de WordPress.

Al utilizar la autenticación básica de WordPress con credenciales de usuario, se garantiza que las acciones de cada usuario estén correctamente autenticadas y autorizadas, lo que proporciona un entorno seguro para el contenido generado por el usuario.


Método de autenticación básica de la API REST de WordPress mediante credenciales de usuario

2. Uso de credenciales de cliente para una interacción segura con la API REST de WordPress


Si tienes una aplicación para Android o iOS y necesitas interactuar con el contenido de WordPress a través de su API REST, es fundamental proteger tu sitio del acceso no autorizado. En lugar de usar las credenciales de usuario de WordPress directamente, lo cual puede ser arriesgado, te recomendamos la autenticación básica de WordPress con credenciales de cliente.

A continuación se explica cómo utilizar de forma segura las credenciales del cliente:

  • Obtener el ID del cliente y el secreto del cliente: En lugar de exponer las credenciales de usuario de WordPress, genere un ID de cliente y un secreto de cliente para su aplicación.
  • Enviar solicitudes seguras: Al realizar solicitudes de API, incluya el ID y el secreto del cliente. Estas credenciales se transmiten cifradas en el encabezado de autorización básica.
  • Validación y acceso: Una vez que la API REST de WordPress recibe tu solicitud, valida las credenciales del cliente. Si la validación es correcta, obtienes acceso a los puntos finales de la API que necesitas, manteniendo tu sitio seguro.

Al usar credenciales de cliente, garantiza que su información de usuario de WordPress permanezca protegida y al mismo tiempo permite que su aplicación interactúe con su sitio de WordPress de manera eficiente.


Método de autenticación básica de la API REST de WordPress utilizando credenciales de cliente

Uso de la autenticación básica con la API REST: nombre de usuario y contraseña


  • En el complemento, vaya a Configurar métodos pestaña en la sección izquierda.
  • Haga clic en Autenticación básica como método de autenticación API.
  • Método de autenticación básica de la API REST de WordPress mediante nombre de usuario y contraseña
  • Seleccione Nombre de usuario y contraseña con codificación Base64 y haga clic Siguiente en la esquina superior derecha.
  • Método de autenticación básica de la API REST de WordPress mediante nombre de usuario y contraseña
  • Para probar la funcionalidad, complete los campos de nombre de usuario y contraseña de un usuario existente.
  • Método de autenticación básica de la API REST de WordPress mediante nombre de usuario y contraseña
  • Puede editar el punto final de la API REST para obtener detalles de ese punto final. Ejemplo: se seleccionó el punto final /pages aquí:
  • Haga clic en el elemento Configuración de prueba y verifique el resultado que se muestra en la pantalla.
  • Haga clic en el botón Acabado .
  • Método de autenticación básica de la API REST de WordPress mediante nombre de usuario y contraseña

Autenticación básica de API REST mediante ID de cliente y secreto de cliente:


  • En el complemento, vaya a Configurar la autenticación API pestaña y haga clic en Autenticación básica como método de autenticación API.
  • Ahora, seleccione el ID de cliente: Secreto de cliente Como tipo de clave de autenticación básica, elija cualquiera de los métodos de cifrado disponibles, según cómo desee codificar las credenciales del usuario. HMAC es el más seguro y el recomendado.
  • Finalmente, haga clic en Guardar configuración De esta forma se habilitará la autenticación básica para la API REST de WordPress.
  • Método de autenticación básica de la API REST de WordPress utilizando client-id y client-secret
  • Después de guardar la configuración de autenticación básica de la API REST, para acceder a las API REST de WordPress, debe enviar una solicitud de API REST con su clave de autorización correspondiente. Debe usar el formato de solicitud que se muestra a continuación.
  •   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" 
      
  • La función PHP base64_encode(string) para codificación base64 se puede utilizar de la siguiente manera:
  •         
       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==
  • Consulte el Respuesta de error para autenticación básica mediante ID de cliente y secreto de cliente.
  • Consulte el documentación del desarrollador para más detalles.


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


    Siga los pasos a continuación para realizar una solicitud de API REST utilizando Postman:

  • Haga clic en el elemento Muestras de cartero pestaña en el complemento.
  • Implementación del cartero del método de autenticación básica de la API REST de WordPress
  • Ahora, coloque el cursor sobre la tarjeta Ejemplos de cartero de autenticación básica.
      • WordPress REST API Método de autenticación básica cartero Archivo JSON para nombre de usuario: contraseña
      • Importar lo descargado Archivo JSON en la aplicación Postman como se muestra a continuación.
      • WordPress REST API Método de autenticación básica cartero importar archivo JSON
      • Una vez que importe el archivo JSON, haga clic en la solicitud de API REST en Colecciones, como se muestra en la última figura. Reemplace el con su dominio de Wordpress en el http://<wp_base_url>/wp-json/wp/v2/posts y reemplazar el codificado en base64 en el encabezado con el valor codificado base.
        • Ejemplo:
          Para el nombre de usuario: testuser y la contraseña: password@123, el valor codificado en base64 será 'dGVzdHVzZXI6cGFzc3dvcmRAMTIz'

      Método de clave de autenticación de API REST de WordPress, cartero reemplaza la URL base
      • Archivo JSON del cartero del método de autenticación básica de la API REST de WordPress para la identificación del cliente y el secreto del cliente
      • Importar lo descargado Archivo JSON en la aplicación Postman como se muestra a continuación.
      • WordPress REST API Método de autenticación básica cartero importar archivo JSON
      • Una vez que importe el archivo JSON, haga clic en la solicitud de la API REST en Colecciones, como se muestra en la última figura. Ahora reemplace el con su dominio de Wordpress en el http://<wp_base_url>/wp-json/wp/v2/posts y reemplazar el codificado en base64 en el encabezado con el valor codificado base.
      • El cartero del método de autenticación básica de la API REST de WordPress reemplaza la URL base


1. Restricción de API REST basada en roles:


Esta función restringe el acceso a la API REST de WordPress según los roles de usuario. Puedes incluir en la lista de permitidos roles específicos que tienen permiso para acceder a ciertos recursos de la API REST. Al realizar una solicitud a la API REST, se verifica el rol del usuario y solo se concede acceso si está en la lista de permitidos.


¿Cómo configurar la restricción de API REST basada en roles en WordPress?

  • Ir al complemento Configuración Avanzada .
  • En el estilo de Restricción basada en roles Sección, todos los roles tienen permitido acceder a las API de forma predeterminada.
  • Habilite la casilla de verificación junto a los roles a los que desea restringir el acceso a las API.
  • Implementación del cartero del método de autenticación básica de la API REST de WordPress
  • En la imagen anterior, la casilla de verificación del rol de suscriptor está habilitada. Por lo tanto, cada vez que un usuario con su rol de suscriptor realiza una solicitud de API, no podrá acceder al recurso solicitado.

Nota: La función de restricción basada en roles es válida para la autenticación básica (nombre de usuario: contraseña), el método JWT y OAuth 2.0 (concesión de contraseña).


2. Encabezado personalizado:


La función de encabezado personalizado le permite usar un encabezado personalizado en lugar del encabezado "Autorización" predeterminado. Esto añade una capa adicional de seguridad, ya que la API REST solo aceptará solicitudes con el nombre de encabezado personalizado definido. Si alguien intenta enviar una solicitud con el encabezado "Autorización" predeterminado, se denegará el acceso.


¿Cómo configurar un encabezado personalizado para la autenticación de la API REST de WordPress?

  • Ir al complemento Configuración Avanzada .
  • En el estilo de Personalizar encabezado Sección, ingrese el nombre de encabezado preferido en el cuadro de texto.
  • Guarde los cambios para aplicar el nuevo encabezado personalizado para las solicitudes de API.
  • Implementación del cartero del método de autenticación básica de la API REST de WordPress

3. Excluir las API REST:


La función Excluir API REST permite acceder a puntos finales específicos de la API REST sin autenticación. Estas API excluidas se hacen públicas, lo que permite acceder a ellas sin necesidad de un token ni iniciar sesión.


¿Cómo configurar la API REST excluida en la autenticación JWT?

  • Ir al complemento Configuración Avanzada .
  • En el estilo de Excluir API REST Sección, ingrese sus puntos finales de API en el formato requerido.
  • Las API ingresadas serán excluidas de la autenticación y estarán disponibles para acceso público.
  • Implementación del cartero del método de autenticación básica de la API REST de WordPress
  • Ejemplo: supongamos que desea excluir la API REST '/wp-json/wp/v2/posts', luego debes ingresar '/wp/v2/posts' en el cuadro de texto.

4. Habilite el cifrado avanzado para los tokens usando HMAC:


Esta función está disponible en el método de autenticación básica. De forma predeterminada, los tokens se cifran con codificación Base64, pero con la opción avanzada, puede habilitar el cifrado HMAC para tokens. HMAC proporciona un nivel de seguridad mucho mayor, garantizando una protección sólida de las solicitudes de API contra manipulaciones y accesos no autorizados.


¿Cómo configurar el cifrado HMAC para tokens en la autenticación básica de WordPress?

  • Ir al complemento Configuración Avanzada pestaña y abra la Método de cifrado de token .
  • Seleccione HMAC En lugar de Base64, guarde los cambios para aplicar cifrado seguro para todos los tokens.


De forma predeterminada, la autenticación básica utiliza codificación Base64, que no es totalmente segura. Sin embargo, con complementos como el nuestro, puede habilitar el cifrado HMAC avanzado, lo que aumenta la seguridad de los tokens y los hace aptos para su uso en producción.

La autenticación básica es ideal para pruebas, desarrollo o aplicaciones a pequeña escala donde la simplicidad es fundamental. JWT se recomienda para aplicaciones más grandes que requieren sesiones basadas en tokens y escalabilidad.

Sí. La autenticación básica se puede utilizar con credenciales de usuario o de cliente en aplicaciones móviles para validar de forma segura las solicitudes de API.

Si está deshabilitada, los puntos finales de la API REST ya no validarán las solicitudes con autenticación básica. Esto podría dejar su API expuesta a accesos no autorizados, por lo que se recomienda mantener la autenticación siempre habilitada.

Con la función de restricción basada en roles, puede especificar qué roles de WordPress tienen permitido o denegado el acceso a sus puntos finales de API REST.




Obtenga una prueba con todas las funciones



 Gracias por su respuesta. Nos pondremos en contacto con usted pronto.

Algo salió mal. Por favor envíe su consulta nuevamente

Integre los puntos finales de API REST externos/de terceros

¿NECESITA AYUDA?

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 lo ayudará a seleccionar la solución/plan más adecuado según sus necesidades.


ADFS_sso ×
¡Hola!

¿Necesitas ayuda? ¡Estamos aquí!

múltiples proveedores