Подтвердить что ты не робот

Параметры 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, используя последний пакет?

4b9b3361

Ответ 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 должна быть значительно реорганизована.