AADSTS500113 verstehen: Redirect-URI fehlt in der App-Registrierung

Der Fehler bedeutet:
Deine App versucht sich bei Microsoft Entra ID (Azure AD) anzumelden, aber in der App‑Registrierung fehlt die Rückleitungs‑URL (Redirect/Reply URI), die dein Code verwendet.
Ohne passende Redirect‑URI blockt Entra ID den Flow.


Voraussetzungen

  • Zugriff auf das Azure-Portal und Microsoft Entra ID Rechte
  • App-Registrierung vorhanden (oder gleich neu anlegen)
  • Klarheit, welche App-Art du baust:
    • WPF/WinForms/Konsole: Mobile and desktop applications
    • Web-App: Web
    • SPA: Single-page application

Schritt-für-Schritt im Azure-Portal

Microsoft Entra ID öffnen

Azure-Portal → Microsoft Entra ID → App-Registrierungen → deine App auswählen

Zu „Authentifizierung“

„Plattform hinzufügen“ und passend wählen:

  • WPF/WinForms/Konsole: Mobile and desktop applications
  • Web-App: Web
  • SPA: Single-page application

Redirect URIs eintragen

WPF/WinForms/Konsole (MSAL Public Client)
Empfohlen:

texthttps://login.microsoftonline.com/common/oauth2/nativeclient

Optional für Systembrowser:

texthttp://localhost

(ggf. mit Port, z. B. http://localhost:59402)

Web-App (Server/OIDC)
Beispiel:

texthttps://deine-domain.tld/signin-oidc

SPA
Beispiel:

texthttps://deine-domain.tld/auth-callback

Veraltete URIs entfernen

urn:ietf:wg:oauth:2.0:oob unbedingt löschen (deprecated)

Public Client aktivieren (nur Desktop/Konsole)

„Allow public client flows“ → Enabled

Speichern


Code-Beispiele (MSAL)

WPF/Konsole mit Embedded WebView:

csharpvar pca = PublicClientApplicationBuilder
    .Create("<CLIENT_ID>")
    .WithAuthority(AzureCloudInstance.AzurePublic, "<TENANT_ODER_common>")
    .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
    .Build();

var result = await pca.AcquireTokenInteractive(new[] { "User.Read" })
    .WithUseEmbeddedWebView(true)
    .ExecuteAsync();

WPF/Konsole mit Systembrowser:

csharpvar pca = PublicClientApplicationBuilder
    .Create("<CLIENT_ID>")
    .WithAuthority(AzureCloudInstance.AzurePublic, "<TENANT_ODER_common>")
    .WithRedirectUri("http://localhost") // exakt so in Azure hinterlegen
    .Build();

var result = await pca.AcquireTokenInteractive(new[] { "User.Read" })
    .ExecuteAsync(); // kein Embedded WebView

Web-App (OIDC, serverseitig):
Verwende den Redirect der OIDC-Middleware (z. B. /signin-oidc)
und trage genau diese URL in Azure ein.


Häufige Stolpersteine

  • Redirect-URI stimmt nicht exakt (Groß-/Kleinschreibung, Slash, Port)
  • Falsche Plattform gewählt (z. B. Web statt Mobile and desktop applications für WPF)
  • Public client flows nicht aktiviert (bei Desktop/Konsole)
  • Tenant/Account-Typen passen nicht zum Code:
    • Single Tenant → Tenant als GUID/Domain und „Nur Konten in diesem Organisationsverzeichnis“ wählen
    • Multi-Tenant → common oder organizations und in Azure „Mehrere Mandanten“ erlauben

Verifizieren

App beenden und neu starten.
Dann prüfen:

  • Redirect-URI in Azure und im Code identisch?
  • ClientId und Tenant stimmen? (Azure-Portal → App-Übersicht)
  • Mindestens Microsoft Graph „User.Read“ als delegierte Berechtigung hinzugefügt?

Mini-Checkliste

  • Richtige Plattform gewählt?
  • Redirect-URI korrekt und exakt?
  • Public client flows (Desktop/Konsole) aktiviert?
  • Supported account types ↔ Tenant im Code konsistent?
  • Mindestens „User.Read“ als delegierte Berechtigung vorhanden?

Bonus: Neue App-Registrierung anlegen (kurz)

  1. Microsoft Entra ID → App-Registrierungen → Neue Registrierung
  2. Single Tenant oder Multi-Tenant wählen
  3. Nach Anlage:
    • Unter „Authentifizierung“ → Plattform: Mobile and desktop applications
    • Redirect-URIs:texthttps://login.microsoftonline.com/common/oauth2/nativeclient http://localhost
    • Public client flows aktivieren
  4. Unter „API-Berechtigungen“ → Microsoft Graph → Delegiert → User.Read
RSS
LinkedIn
Share
Instagram
Telegram
Reddit
Mastodon
URL has been copied successfully!