logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Autenticación, seguridad y rendimiento

18/05/2025, by Ivan

El módulo JSON:API de Drupal proporciona una forma poderosa de exponer tu contenido como una API, pero seleccionar el método de autenticación adecuado es crucial para la seguridad y la usabilidad. Esta revisión explora las diversas opciones de autenticación disponibles al trabajar con el módulo JSON de Drupal.

Métodos de autenticación principales

El módulo Drupal REST & JSON API Authentication restringe y asegura el acceso no autorizado a las APIs de tu sitio Drupal usando diferentes métodos de autenticación, incluyendo:

Este módulo también permite autenticar llamadas API en una configuración Drupal Headless/Desacoplada.

  1. Autenticación básica
  2. Autenticación basada en clave API
  3. Autenticación basada en token de acceso/OAuth
  4. Autenticación basada en token JWT
  5. Autenticación mediante token de proveedor externo

Autenticación basada en cookies

El método de autenticación predeterminado en Drupal usa cookies de sesión. Cuando un usuario inicia sesión a través del formulario de login de Drupal, se crea una cookie de sesión que puede usarse para autenticar las solicitudes JSON.

Ventajas:

  • Sencillo de implementar para aplicaciones basadas en navegador
  • Utiliza el sistema de autenticación existente de Drupal
  • Funciona bien para aplicaciones JavaScript alojadas en el mismo dominio

Limitaciones:

  • No es adecuado para solicitudes entre dominios sin configuración adicional
  • Menos ideal para aplicaciones móviles o integraciones de terceros
  • Gestión de sesión con sobrecarga

Autenticación básica

La autenticación básica implica enviar las credenciales (usuario y contraseña) con cada solicitud en el encabezado Authorization.

Ventajas:

  • Sencillo de implementar
  • Amplio soporte en clientes HTTP

Limitaciones:

  • Las credenciales se envían con cada solicitud
  • Solo seguro sobre HTTPS
  • No incluye expiración de token incorporada

Módulos de autenticación contribuidos

Simple OAuth (OAuth 2.0)

Simple OAuth implementa el protocolo OAuth 2.0 para la autenticación de API en Drupal.

Ventajas:

  • Autenticación segura basada en tokens
  • Soporte para tokens de refresco
  • Permisos con granularidad fina
  • Ideal para integraciones con terceros
  • Estándar ampliamente adoptado

Limitaciones:

  • Configuración más compleja comparada con autenticación básica
  • Requiere buen entendimiento de los flujos OAuth 2.0

JWT (JSON Web Token)

El módulo JWT permite la autenticación usando JSON Web Tokens.

Ventajas:

  • Autenticación sin estado (stateless)
  • Reduce consultas a la base de datos para verificación
  • Puede incluir claims/metadata en el token
  • Buen rendimiento a gran escala

Limitaciones:

  • Requiere gestión adecuada de claves
  • Preocupaciones de seguridad si se implementa incorrectamente
  • No cuenta con revocación de token incorporada (sin medidas adicionales)

Key Auth

Key Auth proporciona autenticación mediante claves API para Drupal.

Ventajas:

  • Enfoque sencillo basado en clave API
  • Bueno para comunicación máquina a máquina
  • Configuración mínima requerida

Limitaciones:

  • Menos seguro que OAuth para aplicaciones centradas en usuarios
  • Opciones limitadas para revocación
  • No tiene mecanismo de token de refresco

Consumer Auth

Consumer Auth amplía las capacidades de las entidades Consumer en el sistema API de Drupal.

Ventajas:

  • Se integra con el sistema de consumidores de Drupal
  • Permisos flexibles basados en consumidores
  • Complementa otros métodos de autenticación

Limitaciones:

  • Debe usarse junto con otros métodos de autenticación
  • No es una solución independiente

Consideraciones al elegir un método de autenticación

Al seleccionar un método de autenticación para tu JSON API, considera:

  1. Requisitos de seguridad: ¿Qué tan sensible es tu información?
  2. Tipo de cliente: ¿Basado en navegador, aplicación móvil o servidor a servidor?
  3. Experiencia del usuario: ¿Los usuarios deberán iniciar sesión frecuentemente?
  4. Necesidades de rendimiento: ¿Qué tan importante es la velocidad de autenticación?
  5. Requisitos de integración: ¿Servicios de terceros accederán a tu API?

Buenas prácticas

  • Usar siempre HTTPS para cualquier método de autenticación
  • Implementar cabeceras CORS adecuadas para aplicaciones basadas en navegador
  • Considerar cuidadosamente las políticas de expiración de tokens
  • Usar tokens de refresco cuando sea apropiado
  • Implementar límites de tasa para prevenir ataques de fuerza bruta
  • Registrar los intentos de autenticación para monitoreo de seguridad