57 votes

TokenValidationParameters ne fonctionne plus après la mise à niveau vers la version 5.0.0

J'ai le code suivant qui fonctionne quand je l'utilise Système.IdentityModel.Jetons.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 la dernière qui est la version 5 , il n'est plus compile de se plaindre Référence de type 'TokenValidationParameters' prétend qu'elle est définie dans le Système.IdentityModel.Jeton.Jwt, mais il n'a pas pu être trouvé.

Aussi, si vous essayez de le compilateur suivant va vous avertir que le Public 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 rétrogradé cette DLL à nouveau et utilisé la version 4.0.20622.1351, il a commencé à établir.

A-t-il une syntaxe changement de Configuration de l'Azure Active Directory?

Sur Github, je ne pouvais pas trouver un seul projet à l'aide de la dernière package 5.0.0 et ils sont tous en utilisant le package précédent 4.0.20622.1351. Quelqu'un peut-il éclairer sur ce en utilisant le dernier Système.IdentityModel.Jetons.Jwt 5.0.0 ou me diriger vers un projet sur Github à l'aide de la dernière package?

30voto

Brent Schmaltz Points 1003

TokenValidationParameters est dans l'assembly: Microsoft.IdentityModel.Tokens

Il semble que vous utilisiez Katana (la première version de l'offre asp.net OWIN). Katana ne supporte pas la version 5.0.0. Vous devez vous en tenir à 4.x.

La dernière version de asp.net prend une dépendance sur S.IM.xx et M.IM.xxx 5.0. https://github.com/aspnet

17voto

Nate Barbettini Points 26922

Version courte: assurez-vous d'utiliser la version 4.0 ou ultérieure de Microsoft.Owin paquets, comme Microsoft.Owin.De sécurité.Jwt.


Comme les autres réponses mentionné, il y a une modification de rupture dans le Système.IdentityModel.Jetons.Jwt à partir de la version 4.0 à 5.0. Cela a causé des problèmes parce que certains paquets comme Microsoft.IdentityModel.Les protocoles dépendait de la version 5.0, tandis que les plus vieux Katana/OWIN paquets comme Microsoft.Owin.De sécurité.Jwt étaient encore codé en dur à dépendre de la version 4.0.

La bonne nouvelle, c'est que c'est en cours de correction dans le nouveau Katana version 4.0. Le 4.0 paquets (comme Jwt et Témoins) ont été publiés à NuGet comme préliminaire paquets et sera disponible en paquets stables bientôt.

7voto

ChrisW Points 3266

Je ne sais pas quand ou si ce ne sera jamais fixe, mais j'espère que ça va. J'ai déjà posté ces questions sur le site Github pour l'AAD extensions et sur le Katana site. Vous pouvez suivre les discussions et les progrès sur ces sites, et si vous le souhaitez, vous pouvez toujours poster votre intérêt à voir ce adressée.

Je ne comprends pas comment cela n'était pas considéré comme un problème avant la libération. "Mise à niveau .Net de Base" n'est pas une solution raisonnable. Mon application n'a aucune chance de le faire pendant un bon moment, comme le font la plupart des non-trivial projets.

6voto

Thuc Nguyen Points 61

Donc, je suis également rencontrent le même problème aujourd'hui. Après s'être tourné vers le bas, je pense que je connais la réponse.

Bref, c'est le problème avec le Katana de projet (http://katanaproject.codeplex.com/) étant omis de se conformer avec les changements en cours de Windows Azure Active Directory IdentityModel les Extensions .Net (https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet)

Pour plus de détails, TokenValidationParameters y avait-il dans le Système.IdentityModel.Jetons.Jwt assemblée de la version 4.0, mais il a été déplacé dans la version 5.0. La nouvelle maison, il est maintenant dans le montage de Microsoft.IdentityModel.Jetons.

Désolé je ne peux pas fournir un correctif, c'est un changement de conception à partir de laquelle le Katana de la base de code doit être considérablement remaniée.

0voto

Brent Schmaltz Points 1003

Katana ne fonctionnera pas actuellement avec la version 5.x d'IdentityModel. https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet

Cependant, des travaux sont en cours pour résoudre ce problème. La chronologie n'est pas encore définie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X