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 de Azure App Service con OpenID de Auth0 falla: no se puede establecer el valor como nulo. (Parámetro ‘rawToken’)

Estoy creando un Servicio de Aplicaciones en Azure e intentando configurar la autenticación mediante OpenID Connect con Auth0.

Problema:

La página de inicio de sesión de Auth0 aparece y puedo iniciar sesión. Auth0 redirige el navegador a la URL de devolución de llamada de mi aplicación con el Código de Autorización. La aplicación devuelve un error interno del servidor HTTP 500.

El archivo “easyauth_docker.log” muestra que el Middleware de Autenticación de Azure ha lanzado la siguiente excepción:

“System.ArgumentNullException: No se puede asignar un valor nulo. (Parámetro ‘rawToken’)
en Microsoft.Azure.AppService.Middleware.ModuleUtils.ThrowIfNullOrEmpty(String argName, String argValue) en /EasyAuth/Microsoft.Azure.AppService.Middleware.Modules/ModuleUtils.cs:línea 867
en Microsoft.Azure.AppService.Middleware.ModuleUtils.ValidateJwt(String siteName, String rawToken, TokenValidationParameters parameters, String provider, Boolean useLegacyClaims, JwtSecurityToken& jwt, Exception& handledException, Boolean isLoginAction) en /EasyAuth/Microsoft.Azure.AppService.Middleware.Modules/ModuleUtils.cs:línea 567”

Implementación:
– Se ha creado un Servicio de Aplicaciones en Azure con Linux/Node.js. La aplicación está disponible sin autenticación en: “https://.azurewebsites.net”. También puedo depurarla con VS Code.
– Se ha creado una aplicación de Auth0 del tipo Aplicación Web Regular (Concesión de Código de Autorización). Se ha agregado la URL de Devolución de Llamada Permitida: “https://.azurewebsites.net/.auth/login/auth0/callback”.
– Se ha habilitado la autenticación en el Servicio de Aplicaciones. Se ha agregado el Proveedor de Identidad OpenID Connect. Se ha especificado la URL de metadatos: “https:///.well-known/openid-configuration” (la URL funciona desde el navegador). Se han copiado el ID de Cliente y el Secreto de Cliente de la página de Auth0.

Información adicional:

  • El registro de Auth0 contiene dos entradas: Inicio de sesión exitoso e Intercambio exitoso: “Código de Autorización para Token de Acceso”.
  • Después de la página de inicio de sesión, la llamada redirigida no llega a mi código de node.js (verificado en el depurador).
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución:

    El mensaje de error que estás recibiendo sugiere que el parámetro rawToken es nulo, lo que podría significar que el token no se está pasando correctamente al middleware. Aquí hay algunas posibles soluciones a considerar:

    1. Asegúrate de haber configurado correctamente los ajustes de autenticación de la aplicación en Azure. Específicamente, verifica que hayas especificado correctamente el proveedor de identidad OpenID Connect y la URL de metadatos, y que hayas proporcionado el ID de cliente correcto y el secreto de cliente de tu aplicación Auth0.
    2. Verifica que la URL de devolución de llamada especificada en tu aplicación Auth0 coincida con la URL que has especificado en Azure. Asegúrate de estar utilizando correctamente el nombre de host y el puerto, y que la ruta sea correcta.

    3. Verifica que tu aplicación Auth0 esté correctamente configurada para manejar el flujo de Código de Autorización. Asegúrate de haber especificado la URI de redireccionamiento correcta, haber agregado los alcances adecuados y haber configurado los puntos finales necesarios.

    4. Verifica nuevamente que tu código Node.js esté manejando correctamente el flujo de autenticación. Asegúrate de haber registrado el middleware adecuado para manejar la solicitud de autenticación y de estar manejando correctamente la URL de devolución de llamada proporcionada por Auth0.

    5. Revisa los registros tanto en Azure como en Auth0 para ver si hay algún mensaje de error adicional o alguna pista que te ayude a diagnosticar el problema.

    6. Considera probar tu flujo de autenticación localmente utilizando una herramienta como ngrok para depurar cualquier problema sin involucrar el Azure App Service.

    Al examinar cuidadosamente tus ajustes de autenticación y los detalles del mensaje de error, y al probar y depurar sistemáticamente cada componente de tu flujo de autenticación, deberías poder resolver tu error HTTP 500 y integrar con éxito Auth0 en tu Azure App Service.

Comments are closed.