Cómo solucionar los errores de JWT no válido AADSTS700025 en Azure AD
By Mirko Peters ·
Si te encuentras con el error AADSTS700025, también conocido como el temido mensaje "JWT no válido", durante la autenticación en Azure Active Directory, no eres el único. Este problema complica los inicios de sesión y el acceso a las API, porque bloquea el acceso cuando los tokens no superan la validación. Entender este error es clave para cualquiera que desarrolle, administre o proteja aplicacion
Automatically translated with AI from the original post. Read the English original

Si te encuentras con el error AADSTS700025, también conocido como el temido mensaje "JWT no válido", durante la autenticación en Azure Active Directory, no eres el único. Este problema complica los inicios de sesión y el acceso a las API, porque bloquea el acceso cuando los tokens no superan la validación. Entender este error es clave para cualquiera que desarrolle, administre o proteja aplicaciones basadas en Microsoft, ya sea que ejecutes herramientas internas o portales orientados a clientes.
Aquí encontrarás lo que realmente significa AADSTS700025, las causas prácticas y los errores habituales que complican la validación de credenciales, y una guía práctica para decodificar y validar tus JWT. ¿El objetivo? Ayudarte a identificar las causas raíz más rápido, solucionar el problema de forma definitiva y evitar estos dolores de cabeza en el futuro. Manos a la obra para desglosar los errores de autenticación y hacer que todo vuelva a funcionar, de forma segura e inteligente.
Comprender AADSTS700025 y los fallos de firma JWT no válida
El error AADSTS700025 es la forma en que Azure AD te dice: "Oye, este token no supera la validación". Aparece cuando tu aplicación o servicio intenta iniciar sesión con un JWT (JSON Web Token) en el que Azure AD no puede confiar. En el protocolo de autenticación, esto suele significar que la firma del token no es válida, por lo que Azure activa una marca de seguridad y cierra la puerta a tu inicio de sesión o a tu llamada a la API.
Lo más probable es que veas este error durante los flujos OAuth 2.0 u OpenID Connect, justo cuando Azure AD recibe un token y trata de verificarlo. Microsoft usa los "códigos aadsts" como abreviatura para indicar exactamente qué salió mal, y 700025 se refiere específicamente a un fallo en la validación de la firma JWT. Si tu cliente, API o middleware no genera un token que Azure reconozca y en el que confíe, este es el error que obtendrás.
Una "firma JWT no válida" casi siempre indica un problema en la forma en que se creó, formateó o firmó ese token. Puede que el secreto, el certificado o el algoritmo de firma no coincidan con lo que espera Azure AD, o que el contenido se haya manipulado por el camino. Puedes consultar estos códigos en el buscador de errores de Microsoft o en su documentación, pero el diagnóstico siempre es el mismo: el token no puede validarse, así que la autenticación se detiene en seco.
En resumen, si tu usuario o servicio recibe AADSTS700025, Azure AD te está diciendo: "No me creo que esta persona sea quien dice ser, así que no hay trato". Por eso, resolver la causa de un JWT no válido es tan importante para mantener seguras tus aplicaciones y tus datos, y tus usuarios satisfechos.
Causas habituales de los errores de JWT no válido y cómo solucionar problemas con las credenciales
La mayoría de los fallos AADSTS700025 se deben a un puñado de descuidos fáciles de pasar por alto en la forma en que tu aplicación gestiona las credenciales. Si utilizas secretos de cliente, certificados o aserciones, incluso un pequeño descuido puede dar lugar a un token que Azure AD rechaza sin más. Las erratas, los secretos caducados o las huellas digitales de certificado que no coinciden son las principales causas de JWT mal formados o directamente no válidos.
Cuando se trata de flujos como clientsecretcredential, clientcertificatecredential o clientassertioncredential, tienes que dejar bien configuradas las credenciales. Un espacio de más, una clave que no coincide o un cambio en el algoritmo de firma, y Azure lo rechazará. Los desarrolladores también cometen errores al codificar secretos de forma fija o copiarlos, al modificar bibliotecas o al crear código propio de emisión de tokens que ignora las notificaciones requeridas o la configuración del registro de la aplicación.
No olvidemos los cambios manuales en el portal de Azure: a veces se reorganizan los permisos o la configuración de la aplicación. Si cambias una URL de respuesta o un algoritmo de firma de una aplicación registrada pero no actualizas tu código, provocarás errores de firma al instante. Confirma siempre que tus permisos de API y los ámbitos están alineados con los roles de Azure reales y con el acceso consentido: la falta de consentimiento de administrador o los ámbitos que no coinciden pueden hacer que los tokens sean rechazados en la puerta.
Para solucionar problemas, empieza por revisar de nuevo el origen de tus credenciales: confirma que los secretos no han caducado y que los certificados son válidos y están almacenados donde los espera tu código. Revisa el registro de tu aplicación para detectar cambios o errores en la configuración del portal de Azure, sobre todo en las URL de redireccionamiento y en la caducidad de las claves. Estas comprobaciones resuelven la mayoría de los casos y te ahorrarán sesiones maratonianas de depuración más adelante.
Decodificar y validar JWT de Azure AD en tiempo real
Aquí hay algo que muchos pasan por alto: no tienes que adivinar qué le pasa a tu JWT. Puedes obtener el token e inspeccionarlo tú mismo, ahora mismo. Herramientas como jwt.io lo facilitan: basta con copiar tu token emitido por Azure, pegarlo y verás al instante el payload y podrás validar la firma, los claims, los algoritmos y las fechas de caducidad. Es la forma más rápida de detectar claims que faltan o ver si hay una discrepancia evidente en la firma.
Si quieres ir un paso más allá y te gusta meterte en el código, prueba a decodificar y verificar los tokens de forma programática. En Node.js puedes usar bibliotecas como jsonwebtoken para analizar el token y comprobarlo con las claves públicas de Azure, que encontrarás en su configuración de OpenID. Los desarrolladores de Python tienen PyJWT para la misma tarea: obtén los JWK (JSON Web Keys) y verifica que el token esté correctamente firmado y no haya caducado.
Estas técnicas te ayudan a detectar problemas como el desfase de reloj (cuando los valores de iat o exp del token no coinciden con los del servidor), una autoridad incorrecta o una firma corrupta. Y si la hora de tu sistema no está sincronizada, por ejemplo si trabajas con Docker o Kubernetes, es posible que tokens que parecen correctos en otros entornos sigan fallando la validación desde el punto de vista de Azure. ¡Revisa siempre tanto el reloj como los claims!
En resumen: decodificar los tokens tú mismo te pone al volante. Puedes localizar los problemas y solucionarlos mucho más rápido que probando a ciegas con la configuración o las credenciales, y evitas rondas de "prueba y error" que agotan tu paciencia (y la de todo tu equipo).
Cómo prevenir AADSTS700025: buenas prácticas, gestión de errores y ayuda de la comunidad
¿Quieres evitar los dolores de cabeza por JWT no válidos antes de que aparezcan? La mejor decisión es confiar en bibliotecas oficiales de Microsoft, como MSAL o los SDK de Azure, para generar los tokens. Estas herramientas ya incluyen todos los requisitos de firma, formato y claims, así que no tienes que reinventar la rueda (ni cometer errores al arreglar un neumático).
Tu código debe capturar y gestionar con criterio los errores de autenticación en todo momento. Incorpora un registro estructurado de errores para cualquier inicio de sesión fallido y asegúrate de que tus bloques catch muestren los códigos aadsts para que puedas actuar en consecuencia. No silencies las excepciones ni muestres mensajes de fallo genéricos. Esto te ahorrará un tiempo valioso cuando algo salga mal y te dará un registro que mostrar a los administradores o al soporte técnico de Microsoft.
Otro hábito clave: revisar con frecuencia las credenciales y los registros de aplicaciones. Renueva los secretos y certificados antes de que caduquen, valida las direcciones URL de respuesta y vigila que los algoritmos de firma no coincidan (RS256 frente a HS256). En organizaciones grandes, configura procesos automatizados o directivas de gobernanza, como las que se explican en esta guía sobre la estrategia de gobernanza de Azure, para mantener los registros de aplicaciones y los tokens seguros y actualizados.
Y si te atascas, no estás solo ni mucho menos. GitHub tiene un océano de código de ejemplo de Microsoft y de la comunidad: busca incidencias ya reportadas o comparte tu stacktrace para encontrar soluciones rápidas. Los foros de Microsoft y sus canales de comentarios te permiten informar de patrones de errores AADSTS y consultar problemas conocidos. Aprovecha estas redes para buscar soluciones colectivamente, afinar tu forma de resolver problemas y asegurarte de que tus JWT estén impecables la próxima vez.