Aller au contenu
ecdsa.com
Microsoft.IdentityModel.Tokens (.NET).NET

Message d’erreur

IDX10205: Issuer validation failed. Issuer: 'https://sts.windows.net/

Également affiché sous la forme

  • IDX10205: Issuer validation failed.
  • Bearer error="invalid_token", error_description="The issuer 'https://sts.windows.net/00000000-0000-0000-0000-000000000000/' is invalid"

Le texte se poursuit par « Did not match: validationParameters.ValidIssuer: '…' or validationParameters.ValidIssuers: '…' or validationParameters.ConfigurationManager.CurrentConfiguration.Issuer: '…' ». ASP.NET Core envoie `error_description="The issuer '…' is invalid"`.

Microsoft.IdentityModel.Tokens (.NET) — SecurityTokenInvalidIssuerException

Ce que cela signifie

Le claim `iss` du jeton n’est égal ni à `ValidIssuer`, ni à aucune entrée de `ValidIssuers`, ni à l’émetteur de la configuration OpenID téléchargée. Le message affiche l’émetteur du jeton et chacune des valeurs auxquelles il a été comparé. Dans Microsoft Entra ID, le cas d’école est un jeton v1.0 (`https://sts.windows.net/<tenant>/`) vérifié par rapport à l’émetteur v2.0 (`https://login.microsoftonline.com/<tenant>/v2.0`), ou l’inverse.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Corriger la version du jeton à la source

    Définir `requestedAccessTokenVersion` sur 2 dans le manifeste de l’API amène Entra ID à émettre des jetons v2.0 avec l’émetteur `login.microsoftonline.com/…/v2.0`.

    json
    // App registration manifest of the API: issue v2.0 access tokens
    {
      "api": { "requestedAccessTokenVersion": 2 }
    }
  2. 2.

    Accepter les deux émetteurs pendant une migration

    Listez les deux formes de l’émetteur de votre propre locataire, et n’acceptez jamais d’émetteurs arbitraires pour faire disparaître l’erreur.

    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
        ],
    };

Erreurs associées

Parcourir toute la base de données des erreurs de signature