[c#] TokenValidationParameters ne fonctionne plus après la mise à niveau vers la version 5.0.0


Answers

Version courte: Assurez-vous d'utiliser la version 4.0 ou ultérieure des packages Microsoft.Owin, tels que Microsoft.Owin.Security.Jwt .

Comme les autres réponses mentionnées, il y avait un changement de rupture dans System.IdentityModel.Tokens.Jwt de la version 4.0 à 5.0. Cela a provoqué des problèmes car certains packages tels que Microsoft.IdentityModel.Protocols dépendaient de la version 5.0, alors que les anciens packages Katana / OWIN tels que Microsoft.Owin.Security.Jwt étaient toujours codés en dur pour dépendre de la version 4.0.

La bonne nouvelle est que cela est corrigé dans la nouvelle version de Katana 4.0. Les paquets 4.0 (tels que Microsoft.Owin.Security.Jwt et Cookies ) ont été publiés dans NuGet sous la forme de paquets de prerelease et seront bientôt disponibles sous forme de paquets stables.

Question

J'ai le code suivant qui fonctionnait quand j'utilisais System.IdentityModel.Tokens.Jwt, Version = 4.0.20622.1351

private static void ConfigureAzureAD(IAppBuilder appBuilder)
{
    appBuilder.UseWindowsAzureActiveDirectoryBearerAuthentication(
        new WindowsAzureActiveDirectoryBearerAuthenticationOptions
        {
            Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
            TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters
            {
                ValidAudience = ConfigurationManager.AppSettings["ida:Audience"]
            }
        });
}

Cependant dès que j'ai mis à jour ce paquet vers le dernier qui est la version 5 il ne compile plus se plaindre Référence à des réclamations de type 'TokenValidationParameters' il est défini dans System.IdentityModel.Token.Jwt mais il n'a pas pu être trouvé.

Aussi, si vous essayez le compilateur suivant vous avertira que l' audience est obsolète :

 private static void ConfigureAzureAD(IAppBuilder appBuilder)
    {
        appBuilder.UseWindowsAzureActiveDirectoryBearerAuthentication(
            new WindowsAzureActiveDirectoryBearerAuthenticationOptions
            {
                Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
                Audience = ConfigurationManager.AppSettings["ida:Audience"]
            });
    }

J'ai déclassé à nouveau cette DLL et utilisé la version 4.0.20622.1351, il a commencé à compiler.

Y a-t-il eu une modification de syntaxe pour la configuration d'Azure Active Directory?

Sur Github je ne pouvais pas trouver un seul projet en utilisant le dernier paquet 5.0.0 et tous utilisent le paquet précédent 4.0.20622.1351. Quelqu'un peut-il faire la lumière sur ce sujet en utilisant le dernier System.IdentityModel.Tokens.Jwt 5.0.0 ou me diriger vers un projet sur Github en utilisant le dernier paquet?




Donc, je suis également confronté au même problème aujourd'hui. Après avoir regardé au fond, je pense que je connais la réponse.

En bref, le problème avec le projet Katana ( http://katanaproject.codeplex.com/ ) n'a pas réussi à se conformer aux changements actuels des extensions IdentityModel de Windows Azure Active Directory pour .Net ( github.com/AzureAD/… )

Pour plus de détails, TokenValidationParameters était présent dans la version 4.0 de System.IdentityModel.Tokens.Jwt, mais il a été déplacé dans la version 5.0. La nouvelle maison pour cela est maintenant dans l'assembly Microsoft.IdentityModel.Tokens.

Désolé, je ne peux pas vous fournir de correctif. C'est un changement de conception à partir duquel la base du code Katana doit être refondue de façon spectaculaire.






Related