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




3 Answers

TokenValidationParameters est en assembly: Microsoft.IdentityModel.Tokens

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

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

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?




Je ne sais pas quand ou si cela sera jamais réparé, mais j'espère que ce sera le cas. J'ai déjà posté ces problèmes sur le site Github pour les extensions AAD et sur le site de Katana . Vous pouvez suivre avec les discussions et les progrès sur ces sites, et si vous vous souciez de, vous pouvez toujours afficher votre intérêt à voir cette adresse.

Je ne peux pas comprendre comment cela n'a pas été considéré comme un problème avant la sortie. "Mettre à niveau vers .Net Core" 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 projets non triviaux.




Katana ne fonctionnera pas actuellement avec la version 5.x d'IdentityModel. github.com/AzureAD/…

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




Related

c# azure azure-web-sites azure-active-directory