Как настроить авторизацию нескольких токенов-носителей JWT с помощью .net-standard

У меня есть приложение веб-API, созданное для платформы .net Standard 2.0 (не .net core), которое настраивает безопасность oAuth2 для одного эмитента. Мне нужно добавить поддержку дополнительного эмитента, чтобы API мог обрабатывать оба формата токенов JWT и ограничивать отдельные методы API только одним эмитентом.

Я нашел эту прекрасную статью Используйте множественную аутентификацию носителя JWT, которая применима к ядру .net, но поскольку мое приложение использует сторонний SDK, который не поддерживает ядро ​​.net, я не могу обновить свое приложение, чтобы использовать его.

Я надеюсь, что есть способ сделать это со стандартом .net, но до сих пор я не нашел ничего по существу (хотя тонны основных статей .net).

Образец кода:

    public void ConfigureAuth(IAppBuilder app)
    {
        //configuration
        var url = ConfigurationManager.AppSettings["url"];
        var authorizationServerId = ConfigurationManager.AppSettings["authorizationServerId"];
        var clientID = ConfigurationManager.AppSettings["clientId"];
        var oauthIssuer = $"{url}{authorizationServerId}";

        var tvps = new System.IdentityModel.Tokens.TokenValidationParameters
        {
            ValidAudience = clientID,
            ValidateAudience = true, 
            ValidIssuer = oauthIssuer,
            ValidateIssuer = true,
        };

        app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
        {
            AccessTokenFormat = new JwtFormat(tvps,
                new OpenIdConnectCachingSecurityTokenProvider(oauthIssuer + "/.well-known/openid-configuration")),
        });
    }

person Paul Keegstra    schedule 15.05.2019    source источник
comment
Нет стандартной платформы .NET. Это спецификация библиотеки. Веб-приложения и фреймворки должны выбирать конкретную среду выполнения и фреймворк. Например, ASP.NET Core — это веб-фреймворк, который может работать как в среде выполнения .NET, так и в среде выполнения .NET Core.   -  person Panagiotis Kanavos    schedule 15.05.2019
comment
Возможно, под standard вы подразумеваете полный фреймворк и ASP.NET MVC?   -  person Panagiotis Kanavos    schedule 15.05.2019
comment
В настоящее время проект нацелен на фреймворк версии 4.6.2, и да, я имею в виду полный фреймворк (не ядро).   -  person Paul Keegstra    schedule 15.05.2019
comment
МВК? Веб-API? Какая версия? Хотя вы можете перейти на ASP.NET Core. ASP.NET Core до версии 2.2 — это стек, который может работать как в среде выполнения .NET, так и в среде выполнения .NET Core. Он не привязан к .NET Core.   -  person Panagiotis Kanavos    schedule 15.05.2019