Fehlermeldung
IDX10205: Issuer validation failed. Issuer: 'https://sts.windows.net/
Auch ausgegeben als
- IDX10205: Issuer validation failed.
- Bearer error="invalid_token", error_description="The issuer 'https://sts.windows.net/00000000-0000-0000-0000-000000000000/' is invalid"
Danach folgt „Did not match: validationParameters.ValidIssuer: '…' or validationParameters.ValidIssuers: '…' or validationParameters.ConfigurationManager.CurrentConfiguration.Issuer: '…'“. ASP.NET Core sendet `error_description="The issuer '…' is invalid"`.
Microsoft.IdentityModel.Tokens (.NET) — SecurityTokenInvalidIssuerException
Was der Fehler bedeutet
Der Claim `iss` des Tokens stimmt weder mit `ValidIssuer` noch mit einem Eintrag von `ValidIssuers` noch mit dem Aussteller aus der heruntergeladenen OpenID-Konfiguration überein. Die Meldung gibt den Aussteller des Tokens und jeden Wert aus, mit dem er verglichen wurde. In Microsoft Entra ID ist der Lehrbuchfall ein v1.0-Token (`https://sts.windows.net/<tenant>/`), das gegen den v2.0-Aussteller (`https://login.microsoftonline.com/<tenant>/v2.0`) geprüft wird, oder umgekehrt.
Warum der Fehler auftritt
v1.0-Token von Entra ID, v2.0-Aussteller (oder umgekehrt)
häufigÜber die Token-Version entscheidet die App-Registrierung der API (`requestedAccessTokenVersion`), nicht der Endpunkt, den der Client verwendet hat. Eine API, die v2.0 erwartet, erhält v1.0-Tokens, bis im Manifest etwas anderes steht.
Ein Token aus einem anderen Mandanten (Tenant)
häufigMandantenfähige Apps erhalten Tokens, deren Aussteller die Mandanten-ID des Nutzers enthält. Ein einzelner `ValidIssuer` akzeptiert nur einen Mandanten; mandantenfähige APIs brauchen einen Validator für den Aussteller, der den Mandanten gegen eine Allowlist prüft.
Abweichende Schreibweise
gelegentlichVerglichen wird exakt als String: Schrägstrich am Ende, Host in Großbuchstaben, Suffix `/v2.0`, Pfad der B2C-Richtlinie. Kopiere den Wert aus dem Discovery-Dokument.
So behebst du den Fehler
- 1.
Token-Version an der Quelle korrigieren
Setzt du `requestedAccessTokenVersion` im Manifest der API auf 2, stellt Entra ID v2.0-Tokens mit dem Aussteller `login.microsoftonline.com/…/v2.0` aus.
json // App registration manifest of the API: issue v2.0 access tokens { "api": { "requestedAccessTokenVersion": 2 } } - 2.
Während einer Migration beide Aussteller akzeptieren
Trage beide Formen des Ausstellers deines eigenen Mandanten ein – akzeptiere niemals beliebige Aussteller, nur damit der Fehler verschwindet.
csharp options.TokenValidationParameters = new TokenValidationParameters { ValidIssuers = [ $"https://login.microsoftonline.com/{tenantId}/v2.0", $"https://sts.windows.net/{tenantId}/", // only while v1.0 tokens are still in circulation ], };