Resultados de la búsqueda :

×

Autenticación de API REST para WordPress mediante un proveedor externo

La autenticación de API REST para WordPress mediante el método de proveedores externos implica el uso de tokens (token de acceso/token de identificación/token jwt) recibidos de proveedores externos como Google, Facebook, Firebase, Apple, Azure AD, Keycloak, Okta, AWS Cognito, Github, Slack, Gitlab, etc. para acceder de forma segura a la API REST de WordPress.
Los endpoints de WordPress no son seguros por defecto y los datos pueden ser robados a través de las API REST en formato JSON. El plugin de autenticación de API REST para WordPress permite llamar a las API REST con múltiples métodos de seguridad, como autenticación básica, clave API, token JWT y token OAuth. En esta guía, utilizaremos un token OAuth emitido por proveedores de OAuth/OpenID Connect/Firebase para validar las solicitudes de la API REST, lo que mantendrá su sitio web de WordPress protegido y seguro. Cada vez que se realice una solicitud para acceder a la API REST, la autenticación se realizará con ese token emitido por proveedores externos como Google, Facebook, Firebase, Apple, Okta, etc., y en función de la validación del token de API, se permitirá el acceso a los recursos de esa solicitud de API REST. Por lo tanto, el único token que obtuvo en su aplicación después del inicio de sesión único (SSO) puede utilizarse posteriormente para acceder a los endpoints de la API REST para WordPress.



Autenticación de API REST para WordPress

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

Para saber más   

  • Inicie sesión en su instancia de WordPress como administrador.
  • Ir a WordPress Panel de control -> Complementos y haga clic en Añadir nuevo.
  • Buscar un Autenticación de API REST complemento para WordPress y haga clic en Instalar ahora .
  • Una vez instalado, haga clic en Activar.


  • Supongamos que tienes una aplicación móvil para Android/iOS y has permitido a tus usuarios iniciar sesión con múltiples proveedores de inicio de sesión social como Google, Facebook, Apple, LinkedIn, Instagram u otros proveedores de OAuth/OpenID Connect como AWS Cognito, Auth0, Microsoft Azure, Okta, Keycloak, Firebase, etc., y quieres que tus usuarios accedan a los puntos finales de la API REST para WordPress desde las aplicaciones móviles, por lo que puedes realizar la autenticación del acceso a los puntos finales de la API REST en función del token de acceso/ID (token JWT) obtenido de los proveedores de identidad de OAuth/OpenID Connect (servidor) durante el inicio de sesión único (SSO) para iniciar sesión en tu aplicación. Así, el token de acceso/ID/JWT se pasa en el encabezado de autorización de la solicitud de API con el tipo de token Bearer y la validación de ese token se realiza directamente a través de los proveedores de identidad de OAuth/OpenID Connect/Firebase correspondientes. Por lo tanto, la solicitud de validación se realiza internamente al servidor de OAuth/OpenID Connect correspondiente. Si la validación del token es exitosa, la solicitud a la API REST permitirá el acceso a los recursos/datos; en caso de fallo de validación, se devolverá una respuesta de error. De esta forma, los recursos/datos se protegen con el máximo nivel de seguridad mediante la autenticación directa de los proveedores de identidad OAuth/OpenID Connect.

  • Autenticación de API REST para WP mediante clave de terceros.
  • Cómo se puede lograr este caso de uso para la autenticación con nuestro complemento:
    • 1. La solicitud al punto final de la API REST se realiza con el token de acceso/ID obtenido de los proveedores de identidad OAuth/OpenID Connect, que se pasa en el encabezado de autorización con el tipo de token Bearer.

      2. La solicitud de la API REST para WordPress es monitoreada por nuestro plugin y la solicitud de validación/autenticación del token JWT se envía al proveedor de identidad OAuth/OpenID Connect (Servidor).

      3. La respuesta se devuelve desde el proveedor de identidad OAuth/OpenID Connect (servidor) para la solicitud realizada anteriormente para validar el token JWT.

      4. Si la validación/autenticación del token JWT es exitosa, se permite el acceso al recurso solicitado, lo que significa que el solicitante está autorizado a acceder al recurso/datos. Si la validación del token falla, se devolverá una respuesta de error. Por lo tanto, los datos del recurso están protegidos y se puede acceder a ellos con autorización, por lo que la seguridad no es un problema.


Caso de uso relacionado:

  • ¿Cómo evitar que los puntos finales de la API REST de WordPress utilicen el token JWT proporcionado por los proveedores de identidad de Social Login o OAuth2.0/OpenID Connect?
  • ¿Cómo realizar la autenticación y garantizar la seguridad o realizar la autorización para otorgar acceso a los puntos finales de la API REST de WordPress sobre la base del token de acceso/identificación proporcionado por los proveedores de Social Login/OAuth durante el flujo de inicio de sesión SSO de OAuth/OpenID?




  • Seleccione su cuenta en Método de autenticación →Proveedor externo y añade Punto final de introspección proporcionado por su proveedor de OAuth/OpenID Connect, haga clic en Guardar configuración.
  • Autenticación de API REST para WP mediante clave de terceros.
  • Una vez que configure el complemento con el punto final de introspección proporcionado por su proveedor, intente acceder a sus API REST para WordPress utilizando el token de acceso/id_token proporcionado por su proveedor de OAuth, como se muestra a continuación.
  • Request: GET https://<domain-name>/wp-json/wp/v2/posts
    Header: 
    access_token : < access_token >
    OR
    id_token  : < id_token  >
    -H 'app-name:TheAppName'
    
  • Consulte el documentación del desarrollador para más información.

 
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>");
request.AddHeader = ("app-name", "TheAppName");
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>")
.addHeader = ("app-name", "TheAppName");
 .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>"
"app-name": "TheAppName"
},        
};

$.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>'
'app-name: TheAppName'
),

));          

$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>'
'app-name': 'TheAppName',
}
conn.request("GET", "/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:

  • Puede descargar el formato de solicitud de cartero de muestra desde aquí.
  • Extraiga el archivo zip descargado e importe el archivo json extraído a la aplicación Postman.
  • Autenticación de API REST para WP mediante implementación de Postman con un método de terceros
  • Vuelva a colocar la < token_acceso > or < token_id > con el token respectivo proporcionado por su proveedor de OAuth 2.0.
  • Vuelva a colocar la <nombre-aplicación> con su respectivo AppName.
  • Ejemplo:
  • Autenticación de API REST para WP usando el método de terceros Postman, reemplazando la URL del recurso real.

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


Esta función permite restringir el acceso a la API REST según los roles de usuario. Puede incluir en la lista blanca los roles que desee permitir al recurso solicitado para las API REST. De esta forma, cada vez que un usuario realiza una solicitud a la API REST, se recuperará su rol y solo podrá acceder al recurso si está en la lista blanca.


¿Cómo configurarlo?

  • Primero, vaya a la pestaña 'Configuración avanzada' del complemento.
  • Luego, en la sección "Restricción basada en roles", todos los roles podrán acceder a las API de forma predeterminada. Puede marcar la casilla de los roles cuyo acceso desee restringir.
  • Implementación en Postman del método de autenticación básica de la API REST
  • En la captura de pantalla 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


Esta característica proporciona una opción para elegir un encabezado personalizado en lugar del encabezado predeterminado "Autorización".

Aumentará la seguridad ya que tiene el encabezado nombrado con 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?

  • Primero, vaya a la pestaña 'Configuración avanzada' del complemento.
  • Luego, en la sección "Encabezado personalizado", puede editar el cuadro de texto para ingresar el nombre personalizado que desee.
  • Implementación en Postman del método de autenticación básica de la API REST

3. Excluir las API REST


Esta función le permite incluir sus API REST en la lista blanca para que se pueda acceder a ellas directamente sin autenticación. Por lo tanto, todas estas API REST incluidas en la lista blanca están disponibles públicamente.


¿Cómo configurarlo?

  • Primero, vaya a la pestaña 'Configuración avanzada' del complemento.
  • Luego, en 'Excluir API REST', puede ingresar sus API en el formato prescrito que debe estar en la lista blanca para acceso público.
  • Implementación en Postman del método de autenticación básica de la API REST
  • 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. Caducidad del token personalizado


Esta función 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. Permite configurar una fecha de caducidad personalizada para los tokens, de modo que estos dejen de ser válidos una vez que expiren.


¿Cómo configurarlo?

  • Primero, vaya a la pestaña 'Configuración avanzada' del complemento.
  • En la sección "Configuración de Caducidad del Token", se puede modificar la validez del token de acceso y el token de actualización (usado para el método OAuth 2.0). De forma predeterminada, el tiempo de caducidad del token de acceso es de 60 minutos y el del token de actualización, de 14 días. Por lo tanto, con esta función, la caducidad se puede ajustar según los requisitos.
  • Implementación en Postman del método de autenticación básica de la API REST

Por lo tanto, con esta función de caducidad de token personalizada, la seguridad aumenta aún más.


5. Habilite el cifrado avanzado para los tokens usando HMAC


Esta función está disponible con el método de autenticación básica en el que, de manera predeterminada, el token se cifra utilizando la técnica de codificación Base64, pero con la función avanzada, el token se puede cifrar con un cifrado HMAC de alta seguridad que es muy seguro.

Implementación en Postman del método de autenticación básica de la API REST

6. Validación de firma para tokens basados ​​en JWT


Esta función permite la 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 pueda decodificarse utilizando el secreto/certificado del cliente. Esto significa que su firma es privada e inaccesible para otros.

Implementación en Postman del método de autenticación básica de la API REST

Brindamos soporte para 2 algoritmos de firma: HS256 y RS256. Por lo tanto, se puede elegir cualquiera de los algoritmos de firma del 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.


7. Cree claves/tokens API específicos del usuario


  • Esta función está disponible dentro del método de clave API en el que los tokens se pueden generar de acuerdo con la información del usuario en lugar de un token generado aleatoriamente, que es una clave universal.
  • Con la clave/token de API universal, los usuarios no tienen permiso para acceder a ciertas API REST para WordPress con métodos de solicitud POST, PUT o DELETE, como la creación de usuarios, publicaciones o páginas, etc., en las que se requieren permisos/roles de usuario específicos para realizar operaciones mediante la solicitud de API REST, ya que la clave universal se genera aleatoriamente y no contiene una descripción basada en el usuario.
  • Por lo tanto, esta función de clave/token API basada en el usuario permite al usuario acceder a las API REST con métodos de solicitud como POST, PUT, DELETE en WordPress, que requieren credenciales de usuario o ciertos roles para realizar la operación, de modo que cuando se realiza una solicitud a la API REST para WordPress con la clave basada en el usuario, se obtiene el rol del usuario y se le permitirá acceder a la API solo si tiene permiso para hacerlo.
  • Por Ejemplo: Solo los usuarios con roles de administrador y editor tienen permisos para crear/editar/eliminar una publicación.
  • Entonces, si se realiza una solicitud a esta API para crear/eliminar/editar la publicación, la respuesta de la API será “No tiene permiso para realizar esta operación”.
  • Ahora, si se realiza una solicitud con el token basado en el usuario generado para el usuario que tiene rol de administrador o editor, solo ellos tienen acceso a esta API y pueden realizar la operación (crear/actualizar/eliminar) a través de la llamada API.
  • Cómo utilizar esta función:

  • Seleccione el usuario del menú desplegable y haga clic en el botón Crear clave API.
  • Implementación en Postman del método de autenticación básica de la API REST
  • Aparecerá una ventana emergente en la pantalla, solo necesita hacer clic en el botón Aceptar para copiar el token.
  • Implementación en Postman del método de autenticación básica de la API REST
  • Ahora, este token se puede utilizar con la solicitud de API del mismo modo que se utiliza la clave universal para realizar la solicitud de API.


Obtenga una prueba con todas las funciones



 Gracias por tu respuesta. Nos pondremos en contacto contigo en breve.

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

API REST para WordPress con un proveedor externo

¿Necesitas ayuda?

Envíenos un correo electrónico a [email protected] 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.

ADFS_sso ×
¡Hola!

¿Necesitas ayuda? ¡Estamos aquí!

múltiples proveedores