Risolvere Errore AADSTS50011 in Microsoft Entra ID: Guida Redirect URI [2026]
AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application '{client-id}'.
Questo messaggio appare all'utente non appena tenta di eseguire il login tramite Microsoft identity platform (MSAL). È causato da una discrepanza binaria anche solo di un singolo carattere tra il client e il cloud.
1. Le 4 Cause Principali di Mismatch
Il motore di validazione OAuth 2.0 / OpenID Connect di Microsoft Entra ID è rigoroso e non applica alcuna tolleranza. I motivi per cui l'errore compare nel 99% dei casi sono:
2. Risoluzione Passo-Passo su Microsoft Entra Admin Center
- Accedi a entra.microsoft.com con credenziali amministrative o di Developer.
- Nel menu laterale, naviga su Applicazioni → Registrazioni app (App registrations).
- Seleziona la scheda Tutte le applicazioni e clicca sul nome della tua app (o cerca il
client-idcitato nel messaggio d'errore). - Nel menu dell'applicazione, clicca su Autenticazione (Authentication).
- Verifica le configurazioni della piattaforma:
- Se stai sviluppando un frontend puro (React, Vue, Angular, static HTML con MSAL.js), l'URI DEVE trovarsi sotto la sezione Applicazione a pagina singola (SPA). Se non esiste, clicca su Aggiungi una piattaforma → Applicazione a pagina singola.
- Se stai usando Next.js con route server-side, Django, Flask o Express che scambiano il codice con client secret, l'URI va configurato sotto la sezione Web.
- Se stai sviluppando un'applicazione CLI o desktop (Python script, PowerShell, .NET desktop), aggiungi la piattaforma Applicazioni desktop e per dispositivi mobili con
http://localhost.
- Aggiungi l'URI identico a quello mostrato nella stringa d'errore del browser.
- Clicca su Salva in alto.
3. Automazione Rapida con Microsoft Graph PowerShell
Se devi aggiornare regolarmente i redirect URI per il tuo team o durante i test su porte variabili, puoi usare lo script PowerShell ufficiale tramite il modulo Microsoft.Graph.Applications:
# Connessione a Microsoft Graph con privilegi applicativi
Connect-MgGraph -Scopes "Application.ReadWrite.All"
$AppId = "INSERISCI-IL-TUO-CLIENT-ID"
$App = Get-MgApplication -Filter "appId eq '$AppId'"
# Definizione dei nuovi Redirect URI per SPA (supporta porte multiple di localhost)
$SpaRedirects = @(
"http://localhost:3000",
"http://localhost:5173",
"https://alexmaina.dev/auth/callback"
)
# Aggiornamento dell'oggetto SPA nell'App Registration
Update-MgApplication -ApplicationId $App.Id -Spa @{ RedirectUris = $SpaRedirects }
Write-Host "✅ Redirect URIs aggiornati con successo per l'app: $($App.DisplayName)" -ForegroundColor Green
4. Regole Speciali per Localhost in MSAL
Microsoft concede un'eccezione speciale per lo sviluppo locale su macchine per sviluppatori:
- HTTP è consentito solo su localhost: Per qualsiasi dominio pubblico è obbligatorio HTTPS. L'unico caso in cui Entra ID accetta
http://è quando l'host è esplicitamentelocalhosto l'indirizzo loopback127.0.0.1. - Specificare la porta esatta: Se il tuo server di sviluppo locale passa automaticamente a una porta successiva (es. da 3000 a 3001 perché la prima era occupata), l'autenticazione fallirà immediatamente. È buona norma registrare preventivamente sia
http://localhost:3000chehttp://localhost:3001.
❓ Domande Frequenti (FAQ Tecniche)
Risposte sintetiche ai dubbi architetturali e agli errori operativi più frequenti su questo scenario.
Cosa significa esattamente il codice errore AADSTS50011?
Significa che l'URL di reindirizzamento (redirect_uri o reply URL) specificato nella richiesta di login inviata dall'applicazione non corrisponde a nessuno degli URL configurati per quella specifica App Registration nel portale Microsoft Entra ID.
Posso usare wildcard come https://*.miodominio.com come redirect URI?
No. Microsoft ha deprecato e bloccato l'uso di caratteri jolly (wildcard) nei redirect URI per prevenire attacchi di tipo OAuth token hijacking e phishing. Ogni URI di callback deve essere dichiarato esplicitamente.
Qual è la differenza tra configurare l'URL sotto 'SPA' e sotto 'Web'?
Le applicazioni Single Page (React, Angular, Vue, Vanilla JS) usano il flusso Authorization Code con PKCE e richiedono il supporto CORS sull'endpoint dei token di Entra ID. Se registri l'URL sotto 'Web', l'endpoint non invierà gli header CORS e l'autenticazione fallirà.