Zum Inhalt springen
ecdsa.com
Microsoft.IdentityModel.JsonWebTokens / System.IdentityModel.Tokens.Jwt (.NET).NET

Fehlermeldung

IDX10503: Signature validation failed. The token's kid is: '2026-10', but did not match any keys in TokenValidationParameters or Configuration.

Auch ausgegeben als

  • IDX10503: Signature validation failed. Token does not have a kid. Keys tried:
  • IDX10517: Signature validation failed. The token's kid is missing.
  • Bearer error="invalid_token", error_description="The signature key was not found"

Der vollständige Text geht mit „Keys tried: …“, Schlüsselanzahlen und Platzhaltern `[PII of type … is hidden]` weiter (setze in der Entwicklung `IdentityModelEventSource.ShowPII = true`, um sie zu sehen). Geprüft mit 6.36.0, 7.7.1 und 8.23.0: 6.x formuliert „IDX10503: Signature validation failed. Token does not have a kid. Keys tried: …“; 7.x und 8.x verwenden den Wortlaut oben und melden ein Token ohne `kid` als IDX10517 „The token's kid is missing“.

Microsoft.IdentityModel.JsonWebTokens / System.IdentityModel.Tokens.Jwt (.NET) — SecurityTokenSignatureKeyNotFoundException

Was der Fehler bedeutet

Das Token nennt seinen Signaturschlüssel über einen `kid`, und kein Schlüssel in `TokenValidationParameters` (`IssuerSigningKey(s)`) oder in der aus dem JWKS der Authority heruntergeladenen Konfiguration hat diese Schlüssel-ID. Die Signatur wurde nie berechnet – es gab keinen infrage kommenden Schlüssel. In ASP.NET Core sieht der Client `WWW-Authenticate: Bearer error="invalid_token", error_description="The signature key was not found"`.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Schlüssel vom Handler bei der Authority abrufen lassen

    Ist `Authority` gesetzt, lädt `JwtBearer` das JWKS des Ausstellers über OpenID Connect Discovery herunter und aktualisiert es regelmäßig sowie zusätzlich dann, wenn ein Token einen unbekannten Schlüssel nennt (`RefreshOnIssuerKeyNotFound`, standardmäßig aktiv).

    csharp
    builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer(options =>
        {
            // Keys come from {Authority}/.well-known/openid-configuration -> jwks_uri and are refreshed automatically.
            options.Authority = "https://login.example.com/";
            options.Audience = "api://orders";
        });
  2. 2.

    Verborgene Werte beim Debuggen sichtbar machen

    IdentityModel verbirgt Schlüssel-IDs und Token-Inhalte im Text von Exceptions standardmäßig. Aktiviere `ShowPII` nur in der Entwicklung, um zu sehen, welche Schlüssel probiert wurden.

    csharp
    // Development only: show the hidden values ([PII of type ... is hidden]) in IDX messages.
    if (builder.Environment.IsDevelopment())
    {
        Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true;
    }

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen