Как я могу настроить множественную авторизацию токенов канала-носителя JWT с помощью .net-standard - PullRequest
0 голосов
/ 15 мая 2019

У меня есть приложение Web 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")),
        });
    }
...