Resultados de la búsqueda :

×

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


La autenticación de la API REST de WordPress mediante el método de proveedor externo implica el uso de tokens (token de acceso/token de id/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 de WordPress Rest.

Los puntos finales de WordPress no son seguros de forma predeterminada y los datos se pueden robar a través de API REST en formato JSON. La autenticación de API REST de WordPress le permite llamar a las API REST con múltiples métodos de seguridad como autenticación básica, clave API, token JWT, token OAuth. En esta guía utilizaremos el token OAuth emitido por proveedores de OAuth/OpenID Connect/Firebase para validar las solicitudes de API REST que mantendrán 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á contra ese token emitido por proveedores externos como Google, Facebook, Firebase, Apple, okta, etc., y en base a la validación de la API. token, se permitirá el acceso a los recursos para esa solicitud de API REST. Por lo tanto, el token único que obtuvo en su aplicación después de iniciar sesión en SSO se puede utilizar más para acceder a los puntos finales de la API REST de WP.


Autenticación de la API Rest de WordPress
Por miniOrange

El complemento de autenticación de API REST de WordPress brinda seguridad contra el acceso no autorizado a sus API REST de WordPress.

Para saber más

Requisitos previos: descarga e instalación


  • 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 WordPress Autenticación de API REST complemento y haga clic en Instalar ahora .
  • Una vez instalado, haga clic en Activar.

Caso de uso: Autenticar/proteger los puntos finales de la API REST de WordPress utilizando el token JWT obtenido de los proveedores de identidad de Social Login/OAuth 2.0/OpenID Connect (Servidor).

  • Supongamos que tiene una aplicación móvil Android/iOS y le ha proporcionado a su usuario el inicio de 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 desea que sus usuarios accedan a los puntos finales de la API REST de WordPress desde las aplicaciones móviles, por lo que puede realizar la autenticación del acceso a los puntos finales de la API REST de WordPress en función del token de acceso/identificación (token JWT) obtenido de OAuth/ OpenID Connect Proveedores de identidad (servidor) durante el inicio de sesión único (SSO) para iniciar sesión en su aplicación. Por lo tanto, el token de acceso/id/JWT se pasa en el encabezado de Autorización de la solicitud de API con el tipo de token como Portador y la validación de ese token se realiza directamente a través de los proveedores de identidad OAuth/OpenId Connect/Firebase correspondientes. Por lo tanto, la solicitud de validación se realiza internamente al servidor OAuth/OpenID Connect correspondiente. Si la validación de ese token es exitosa, la solicitud de API REST dará como resultado el acceso a recursos/datos y, en caso de falla de validación, se devolverá la respuesta de error. De esta manera, los recursos/datos se pueden proteger con el máximo nivel de seguridad con autenticación directamente de los proveedores de identidad OAuth/OpenID Connect.

  • Autenticación de la API REST de WordPress mediante un método de clave de terceros
  • Cómo se puede lograr este caso de uso para la autenticación con nuestro complemento:
    • 1. La solicitud del punto final de la API REST de WordPress se realiza con el token de acceso/id obtenido de los proveedores de identidad de OAuth/OpenID Connect pasado en el encabezado de Autorización con el tipo de token como Portador.

      2. Nuestro complemento supervisa la solicitud de la API REST de WordPress y la solicitud de validación/autenticación del token JWT se envía al proveedor (servidor) de identidad de OAuth/OpenID Connect.

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

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


    Caso de uso relacionado: ¿Cómo evitar que los puntos finales de la API REST de WordPress utilicen el token JWT proporcionado por Social Login o los proveedores de identidad 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 en función del token de acceso/identificación proporcionado por los proveedores de inicio de sesión social/OAuth durante el flujo de inicio de sesión SSO de OAuth/OpenID?

Lea los casos de uso de los siguientes métodos de autenticación de Rest API:

Paso 1: Configurar el complemento de autenticación API REST de WordPress

    • 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 la API REST de WordPress mediante un método de 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 de 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  >
      
    • Primero eche un vistazo al sitio web de la página documentación del desarrollador para más información.

mini naranja img Ejemplos de código en lenguajes de programació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>");
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"))   

Muestras de cartero:

    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 esta página.
  • Extraiga el archivo zip descargado e importe el archivo json extraído a la aplicación Postman.
  • Autenticación de la API REST de WordPress mediante la implementación del método de cartero de terceros
  • Vuelva a colocar la < token_acceso > or < token_id > con el token respectivo proporcionado por su proveedor OAuth 2.0.
  • Ejemplo:
  • Autenticación de la API REST de WordPress utilizando el método de terceros, el cartero reemplaza el recurso real de la URL

Descripción de la característica

    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?

    • Primero, vaya a la pestaña 'Configuración avanzada' del complemento.
    • Luego, en la sección Restricción basada en roles, todos los roles de forma predeterminada podrán acceder a las API. Puede habilitar la casilla de verificación de los roles para los que desea restringir el acceso.
    • Implementación del cartero del método de autenticación básica de la API REST de WordPress
    • En la captura de pantalla anterior, la casilla de verificación de función de suscriptor está habilitada. Entonces, cada vez que un usuario realiza una solicitud de API con su rol de suscriptor, ese usuario no podrá acceder al recurso solicitado.

    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?

    • 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 del cartero del método de autenticación básica de la API REST de WordPress

    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?

    • 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 incluirse en la lista blanca para el 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 debe ingresar '/wp/v2/posts' en el cuadro de texto.

    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?

    • Primero, vaya a la pestaña 'Configuración avanzada' del complemento.
    • Luego, en la sección "Configuración de caducidad del token", se pueden modificar la validez del token de acceso y el token de actualización (utilizado para el método OAuth 2.0). De forma predeterminada, el tiempo de vencimiento del token de acceso se establece en 60 minutos y el tiempo de vencimiento del token de actualización se establece en 14 días. Por lo tanto, con esta característica, el vencimiento se puede ajustar en consecuencia según los requisitos.
    • Implementación del cartero del método de autenticación básica de la API REST de WordPress

    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 forma predeterminada, el token se cifra mediante la técnica de codificación Base64, pero con la función avanzada, el token se puede cifrar con cifrado HMAC altamente seguro, que es muy seguro.

    Implementación del cartero del método de autenticación básica de la API REST de WordPress

    6. 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.

    Implementación del cartero del método de autenticación básica de la API REST de WordPress

    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.

    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, el usuario no puede tener permiso para ciertas API REST de WordPress con métodos de solicitud como POST,PUT,DELETE, como crear usuarios, publicaciones, páginas, etc., en las que se requieren permisos/rol de usuario en particular para realizar operaciones. mediante el uso de la solicitud de API REST, ya que la clave universal se genera aleatoriamente y no contiene la descripción basada en el usuario.
    • Por lo tanto, esta función de clave/token de API basada en el usuario le permite acceder a las API REST con un método de solicitud como POST,PUT,DELETE en WordPress, que requiere credenciales de usuario o ciertos roles para realizar la operación, de modo que cuando se realiza la solicitud de API REST de WordPress con la clave basada en 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.
    • Por lo tanto, si se realiza una solicitud a esta API para crear/eliminar/editar la publicación, la respuesta de la API dará como resultado "No tiene permiso para realizar esta operación".
    • Ahora, si se realiza una solicitud con el token basado en usuario generado para el usuario que tiene rol de administrador o editor, entonces solo él tiene acceso a esta API y puede 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 del cartero del método de autenticación básica de la API REST de WordPress
    • Aparecerá una ventana emergente en la pantalla, solo necesita hacer clic en el botón Aceptar para copiar el token.
    • Implementación del cartero del método de autenticación básica de la API REST de WordPress
    • Ahora este token se puede usar con la solicitud de API del mismo modo que se usa la clave universal para realizar la solicitud de API.

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.

Complementos recomendados

El complemento de autenticación de API REST de WordPress proporciona seguridad contra el acceso no autorizado a sus API REST de WordPress. Le proporciona una variedad de métodos de autenticación como autenticación básica, autenticación de clave API, autenticación OAuth 2.0 y autenticación JWT.

 Probado con 5.9.2

Este complemento le permite crear puntos finales personalizados/rutas REST para buscar/modificar/crear/eliminar datos con una interfaz gráfica fácil de usar y también con consultas SQL personalizadas. Además, el complemento proporciona la función de integrar API externa en su sitio de WordPress con plataformas de terceros.

 Probado con 5.9.2
¡Hola!

¿Necesitas ayuda? ¡Estamos aquí!

SOPORTE
Póngase en contacto con el soporte técnico de miniOrange
comercial

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