es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La Autenticación Básica de HTTP deja de funcionar espontáneamente en un sitio de Drupal 9 que utiliza la API Rest.

Este es un problema extraño.

Estoy utilizando una API REST para enviar solicitudes de parche desde un servidor node para actualizar los datos del usuario. Las solicitudes de parche se ven así:

const response = fetch(SHARED_CONFIG.cmsBaseURL + 'entity/flagging?format=json', {
    method: 'PATCH',
    headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'Authorization': 'Basic ' + creds,
    },
    body: JSON.stringify(sendData),
});

La variable creds contiene el nombre de usuario: contraseña codificado en base64 según las especificaciones. Esto ha funcionado bien durante más de un año. Pero desde ayer, de repente dejó de funcionar, sin ningún cambio en la configuración de Drupal. En los registros veo:

> Ruta: /user/247552?_format=json.
> Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException:
> Los usuarios solo pueden actualizar su propia cuenta, a menos que tengan el permiso 'administrar usuarios'. en
> Drupal\Core\Routing\AccessAwareRouter->checkAccess() (línea 120 de
> /var/www/html/core/lib/Drupal/Core/Routing/AccessAwareRouter.php).

Así que verifiqué dos veces que el usuario (en el encabezado de autorización) tenga permisos para ‘administrar usuarios’ y lo tiene. También intenté usar diferentes usuarios y usuarios con acceso de administrador (que deberían omitir todos los permisos), pero aún obtengo el mismo error.

Parece que no importa lo que haga, obtengo acceso denegado al intentar usar PATCH a través de la API REST, suministrando la autorización a través del encabezado de autorización utilizando autenticación básica HTTP. He verificado todo cien veces y estoy desesperado. Tengo un entorno de pruebas casi idéntico al entorno en vivo (clonado unos días antes) que no tiene este problema. Hasta donde sé, no hubo cambios significativos en el entorno en vivo desde la clonación.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Descripción del problema

    El usuario tiene problemas al utilizar la API REST para enviar solicitudes de modificación (patch) desde un servidor nodo para actualizar los datos del usuario. Recibe un mensaje de error que indica que se ha denegado el acceso, aunque el usuario (especificado en el encabezado de autorización) tiene permisos para “administrar usuarios”. Este problema comienza a ocurrir repentinamente, sin ningún cambio en la configuración de Drupal.

    Pasos de solución de problemas tomados

    El usuario ha verificado nuevamente que el usuario especificado en el encabezado de autorización tenga los permisos correctos. También han intentado utilizar diferentes usuarios, incluyendo aquellos con acceso administrativo, pero aún reciben el mismo error. El usuario ha clonado un entorno de preparación que es casi idéntico al entorno en vivo (y se creó unos días antes) y no encuentra este problema.

    Soluciones posibles

    • Verificar si se han agregado o actualizado módulos o configuraciones desde que comenzó a producirse el problema en el entorno en vivo.
    • Comparar las configuraciones y los módulos de los entornos de preparación y en vivo para identificar posibles diferencias.
    • Verificar si hay algún cambio en el servidor o cortafuegos que pueda estar afectando las solicitudes PATCH de la API REST.
    • Intentar utilizar un método de autenticación diferente, como OAuth2, para autenticar las solicitudes de la API REST.
    • Comunicarse con la comunidad de Drupal o el equipo de soporte para obtener ayuda adicional en la solución de este problema.

Comments are closed.