[ad_1]
Hola,
Tengo una aplicación web .net 6 con autenticación de anuncios en Azure. La aplicación está rodeada por una puerta de enlace de aplicaciones azul. Las reglas WAF de la puerta de enlace se están bloqueando y devuelven un error 403 de la puerta de enlace.
Causa raíz: La autenticación web de Microsoft Identity genera cookies que tienen caracteres especiales como guión doble (–), la expresión regular WAF las considera como comentarios SQL y está bloqueando esa solicitud.
Lo que he probado:
Intenté escribir middleware personalizado para codificar y decodificar las cookies, pero no funciona.
Tampoco puedo entender el flujo, ya que el concepto no me queda claro, como si estuviera decodificando y codificando las cookies en el código del servidor en el middleware, pero cuando un usuario envía una solicitud a la aplicación web, aparecerá inicialmente. a la puerta de enlace y allí será bloqueado por la puerta de enlace. No estoy seguro de cómo puede funcionar este tipo de solución.
Comparta sus sugerencias si se ha enfrentado a este problema además de bloquear las reglas en la puerta de enlace de la aplicación. O cómo se resolverá realmente.
Solución 1
Echa un vistazo a Reglas personalizadas de Azure Web Application Firewall (WAF) v2 en Application Gateway | Microsoft aprende[^].
Solución 2
Este no es en absoluto mi campo de especialización ni siquiera cerca de él… Sin embargo, encontré la pregunta interesante y comencé a buscar en Google y, sí, lo sé, algunos consejos de IA.
Parece que su middleware personalizado para codificar y decodificar cookies está implementado correctamente
Parece que debe asegurarse de que todos los encabezados agregados durante la codificación/decodificación se incluyan en las solicitudes salientes.
Asegúrese de que su Azure Application Gateway no sea demasiado restrictivo y considere ajustar las reglas WAF si es necesario. Vi el comentario de que no tiene control sobre esto, solo verifique y confirme el estado.
Para manejar ‘CustomMiddleware’ en .NET, instale los paquetes necesarios (la IA se activa, aquí no se ofrecen garantías, pero ayuda como indicador en la dirección correcta…) –
dotnet add package Microsoft.AspNetCore.Authentication dotnet add package Microsoft.AspNetCore.Authentication.Cookies
Resto aquí copiado y pegado usando C3…-
// CustomMiddleware.cs using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; using System.Threading.Tasks; public class CustomMiddleware { private readonly RequestDelegate _next; public CustomMiddleware(RequestDelegate next) { _next = next; } public async Task Invoke(HttpContext context) { // Decode or encode your cookies here // For example, decoding: // var decodedCookie = context.Request.Cookies["YourCookieName"]; // var decodedValue = DecodeYourCookie(decodedCookie); // Encoding example: // var encodedValue = EncodeYourCookie(originalValue); // context.Response.Cookies.Append("YourCookieName", encodedValue); // Call the next delegate/middleware in the pipeline await _next(context); } }
Registre el middleware en su ‘Startup.cs’ –
// Startup.cs using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; public class Startup { // Other configurations... public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // Other middleware configurations... app.UseMiddleware<CustomMiddleware>(); // Other middleware configurations... } }
Nuevamente, las partes relacionadas con el código se generan con IA, es posible que no estén completamente sincronizadas con lo que desea lograr, pero sirve como indicador…
Solución 3
Sugeriría leer estos artículos de MSDN:
Solución de problemas: Firewall de aplicaciones web de Azure | Microsoft aprende[^]
Examinar registros WAF mediante Azure Log Analytics: Azure Application Gateway | Microsoft aprende[^]
Configuración de directiva para el Firewall de aplicaciones web en Azure Front Door | Microsoft aprende[^]
Listas de exclusión de firewall de aplicaciones web en Azure Application Gateway: Azure Portal | Microsoft aprende[^]
Espero que ayude…
[ad_2]
コメント