Configurar la autenticación básica con el módulo de autenticación de la API REST
La Autenticación Básica (Basic Authentication) es un método de autenticación muy simple y directo. El cliente envía solicitudes HTTP con una cabecera Authorization que contiene el nombre de usuario y la contraseña de tu sitio Drupal codificados en base64.
En la Autenticación Básica, el módulo de autenticación miniOrange API primero autentica al usuario usando su nombre de usuario y contraseña de Drupal. Solo si el usuario es autenticado podrá realizar la operación. Este módulo es compatible con Drupal 7, Drupal 8, Drupal 9, Drupal 10 y Drupal 11.
Video de configuración:
Requisitos previos: Descarga e instalación:
- Descarga e instala el módulo Drupal REST & JSON API Authentication.
- REST UI: Este módulo te proporciona una interfaz gráfica para configurar el módulo REST.
- Habilita los siguientes módulos de Servicios Web desde la sección Extender (/admin/modules) de tu sitio Drupal:
- JSON: API
- REST UI
- RESTful Web Services
- Serialization
Pasos para configurar el método de Autenticación Básica en Drupal:
- Para una mejor comprensión, tomaremos como ejemplo agregar autenticación básica para obtener un nodo en Drupal usando la REST API.
- Nota: la API /node/{node} de Drupal se utiliza para recuperar información de un nodo de Drupal.
Habilita la API y asigna métodos y operaciones de la siguiente manera:
- El primer paso es habilitar la API y también asignar los métodos y operaciones permitidos en esa API en particular. Esto se puede hacer utilizando el módulo REST UI o modificando la configuración directamente.
- Para habilitar la API usando el módulo REST UI, haz clic en el botón de configurar del módulo REST UI (como se muestra abajo)
- En nuestro ejemplo, queremos habilitar la API /node/{node} que se encuentra bajo la sección Contenido. Habilita esta API usando la opción Habilitar frente a ella.
- Ahora, como nuestro objetivo es recuperar la información del nodo, selecciona las siguientes configuraciones:
- Método: GET
- Formato: json
- Proveedor de autenticación: rest_api_authentication
- Esto permitirá que el módulo miniOrange REST API Authentication autentique tu API. Haz clic en el botón Guardar configuración para continuar.
Pasos para habilitar la Autenticación Básica:
- En este paso, configuraremos la Autenticación Básica como método de Autenticación API. Para ello, navega a la pestaña de Autenticación API del módulo REST API Authentication (/admin/config/people/rest_api_authentication/auth_settings)
- Marca la casilla Habilitar autenticación y haz clic en Guardar en la parte superior de Configuración.
- Debajo del botón Guardar configuración selecciona Autenticación Básica y haz clic en el botón seleccionar método.
¡Eso es todo!
Ahora probemos recuperar la información de un nodo mediante una llamada API usando autenticación básica.
Ejemplo:
- Para obtener información de un nodo en Drupal, debes realizar una solicitud GET junto con el nombre de usuario y contraseña de Drupal del usuario. El valor del nombre de usuario y la contraseña debe estar en formato base64encoded. Consulta el siguiente formato para hacer la llamada.
Solicitud: GET <tu_drupal_base_url> /node/{node}?_format=json
Cabecera:
Authorization: Basic base64encoded <username:password>
Accept: application/json
Content-Type: application/jsonSolicitud CURL-
curl --location --request GET 'drupal_base_url/node/1?_format=json' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic base64encoded <username:password'>
- También puedes consultar la imagen de la solicitud Postman añadida abajo:
- Una respuesta exitosa devuelve la información del nodo solicitado. (consulta la imagen abajo)
- Si recibes algún error en la respuesta, puedes consultar la siguiente tabla para la descripción del error y posibles soluciones.
Error |
Descripción |
MISSING_AUTHORIZATION_HEADER |
Obtendrás este error si no envías la cabecera Authorization en la solicitud API o si tu servidor la elimina por algún motivo. Ejemplo: |
INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE |
Obtendrás este error si envías la cabecera Authorization pero no en un formato válido. |
USER_NAME_MISSING |
Obtendrás este error si el módulo no puede encontrar el nombre de usuario en la llamada API. Ejemplo: |
INVALID_CREDENTIALS |
Obtendrás este error si el nombre de usuario o la contraseña son incorrectos. Ejemplo: |