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

c# - example - TokenValidationParameters ya no funciona después de la actualización a 5.0.0



login azure management portal (5)

Así que también estoy experimentando el mismo problema hoy. Después de mirar al fondo, creo que sé la respuesta.

En resumen, es el problema con el proyecto Katana ( http://katanaproject.codeplex.com/ ) que no cumple con los cambios actuales de Windows Azure Active Directory IdentityModel Extensions para .Net ( github.com/AzureAD/… )

Para más detalles, TokenValidationParameters estaba allí en System.IdentityModel.Tokens.Jwt asamblea versión 4.0 pero se ha eliminado en la versión 5.0. El nuevo hogar para él ahora está en ensamblado Microsoft.IdentityModel.Tokens.

Lo siento, no puedo proporcionar una solución, es un cambio de diseño a partir del cual la base de código de Katana necesita ser refactorizada dramáticamente.

Tengo el siguiente código que funcionaba cuando estaba usando 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"] } }); }

Sin embargo, tan pronto como actualicé este paquete al último, que es la versión 5 , ya no compila las reclamaciones de referencia al tipo ''TokenValidationParameters'' que se define en System.IdentityModel.Token.Jwt pero no se pudo encontrar.

Además, si prueba el siguiente compilador le advertirá que la audiencia está obsoleta :

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

Volví a bajar esta DLL y utilicé la versión 4.0.20622.1351, comenzó a compilar.

¿Ha habido un cambio de sintaxis para configurar Azure Active Directory?

En Github no pude encontrar un solo proyecto usando el último paquete 5.0.0 y todos ellos están usando el paquete anterior 4.0.20622.1351. ¿Alguien puede arrojar algo de luz sobre esto usando el último System.IdentityModel.Tokens.Jwt 5.0.0 o dirigirme a algún proyecto en Github usando el último paquete?


Katana actualmente no funcionará con la versión 5.x de IdentityModel. github.com/AzureAD/…

Sin embargo, hay trabajo en curso para solucionar esto. La línea de tiempo aún no está establecida.


No sé cuándo o si esto se solucionará alguna vez, pero espero que lo haga. Ya publiqué estos problemas en el sitio de Github para las extensiones de AAD y en el sitio de Katana . Puede seguir junto con las discusiones y el progreso en esos sitios, y si lo desea, siempre puede publicar su interés en que se aborde esto.

No puedo entender cómo esto no fue visto como un problema antes del lanzamiento. "Actualizar a .Net Core" no es una solución razonable. Mi aplicación no tiene posibilidades de hacerlo por un buen tiempo, al igual que la mayoría de los proyectos no triviales.


TokenValidationParameters está en ensamblado: Microsoft.IdentityModel.Tokens

Parece que está utilizando Katana (la primera versión de la oferta asp.net OWIN). Katana no es compatible con 5.0.0. Necesitas quedarte con 4.x.

La última versión de asp.net depende de S.IM.xx y M.IM.xxx 5.0. https://github.com/aspnet


Versión corta: asegúrese de utilizar la versión 4.0 o posterior de los paquetes Microsoft.Owin, como Microsoft.Owin.Security.Jwt .

Como se mencionó en las otras respuestas, hubo un cambio importante en System.IdentityModel.Tokens.Jwt de la versión 4.0 a la 5.0. Esto causó problemas porque algunos paquetes como Microsoft.IdentityModel.Protocols dependían de la versión 5.0, mientras que los paquetes más antiguos de Katana / OWIN como Microsoft.Owin.Security.Jwt todavía estaban codificados para depender de la versión 4.0.

La buena noticia es que esto se está solucionando en la nueva versión de Katana 4.0. Los paquetes 4.0 (como Microsoft.Owin.Security.Jwt y Cookies ) se han publicado en NuGet como paquetes preliminares y pronto estarán disponibles como paquetes estables.