Параметры TokenValidationParameters больше не работают после обновления до 5.0.0
У меня есть следующий код, который работал, когда я использовал
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"]
}
});
}
Однако, как только я обновил этот пакет до последней версии версии 5, он больше не компилирует жалобы
Ссылка на тип "TokenValidationParameters" утверждает, что он определен в System.IdentityModel.Token.Jwt, но его не удалось найти.
Также, если вы попробуете следующий компилятор, вы предупредите, что Аудитория устарела:
private static void ConfigureAzureAD(IAppBuilder appBuilder)
{
appBuilder.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
Audience = ConfigurationManager.AppSettings["ida:Audience"]
});
}
Я снова отключил эту DLL и использовал версию 4.0.20622.1351, она начала компиляцию.
Было ли изменено синтаксис для настройки Azure Active Directory?
В Github я не смог найти ни одного проекта, используя последний пакет 5.0.0, и все они используют предыдущий пакет 4.0.20622.1351. Может ли кто-нибудь пролить свет на это, используя последний System.IdentityModel.Tokens.Jwt 5.0.0 или перенаправить меня в какой-то проект на Github, используя последний пакет?
Ответы
Ответ 1
TokenValidationParameters находится в сборке: Microsoft.IdentityModel.Tokens
Похоже, вы используете Katana (первая версия asp.net OWIN).
Katana не поддерживает 5.0.0. Вам нужно придерживаться 4.x.
Последняя версия asp.net принимает зависимость от S.IM.xx и M.IM.xxx 5.0.
https://github.com/aspnet
Ответ 2
Я не знаю, когда или когда это будет исправлено, но я надеюсь, что так оно и будет. Я уже разместил эти проблемы на сайте Github для расширений AAD и на Сайт Katana. Вы можете следить за дискуссиями и прогрессом на этих сайтах, и если вам интересно, вы всегда можете опубликовать свой интерес к рассмотрению этого вопроса.
Я не могу понять, как это не рассматривалось как проблема перед выпуском. "Обновление до .Net Core" не является разумным решением. У моего приложения нет никаких шансов сделать это в течение долгого времени, как и большинство нетривиальных проектов.
Ответ 3
Как упоминалось в других ответах, в версии от 4.0 до 5.0 было нарушено изменение System.IdentityModel.Tokens.Jwt. Некоторые пакеты, такие как Microsoft.IdentityModel.Protocols, зависели от версии > 5.0, которая сломала старое связующее ПО Katana/OWIN, например Microsoft.Owin.Security.Jwt, который по-прежнему был жестко запрограммирован в зависимости от версии 4.0.
Хорошей новостью является то, что это исправлено в новой версии Katana 4.0.0. Пока релиз не является официальным, пакеты предварительного доступа доступны в Katana Dev.
Tl; dr - убедитесь, что вы используете версии 4.0 или новее пакетов Microsoft.Owin. *, например Microsoft.Owin.Security.Jwt.
Ответ 4
Так что сегодня я тоже испытываю такую же проблему. Посмотрев вниз, я думаю, что знаю ответ.
Короче говоря, проблема с проектом Katana (http://katanaproject.codeplex.com/) не соответствует текущим изменениям Windows Azure Active Directory IdentityModel Расширения для .Net(https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet)
Для более подробной информации, TokenValidationParameters присутствовал в System.IdentityModel.Tokens.Jwt версии сборки 4.0, но был удален в версии 5.0. Новый дом для него теперь находится в сборке Microsoft.IdentityModel.Tokens.
Извините, я не могу предоставить исправление, это изменение дизайна, из которого база кода Katana должна быть значительно реорганизована.
Ответ 5
В настоящее время Katana не будет работать с версией IdentityModel версии 5.x.
https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet
Тем не менее, есть работа по исправлению этого. Сроки еще не установлены.