Как кэшировать AAD B2C SecurityTokens в ASP.NET Core - PullRequest
0 голосов
/ 25 мая 2018

В API ASP.NET мы использовали OpenIdConnectCachingSecurityTokenProvider, который кэшировал бы SecurityTokens в течение 1 минуты, прежде чем обновлять его снова.

Есть ли способ воспроизвести такое поведение в ASP.NET Core?

1 Ответ

0 голосов
/ 30 мая 2018

Я только что использовал Microsoft.AspNetCore.Authentication.JwtBearer , чтобы проверить JwtBearerOptions в моем .NET Core 2.0 Web API.Вы можете явно настроить JwtBearerOptions.ConfigurationManager, который отвечает за получение, кэширование и обновление конфигурации из метаданных.Вот фрагмент кода, вы можете сослаться на него:

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(options =>
    {
        options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
    }).AddJwtBearer(jwtOptions =>
    {
        jwtOptions.Audience = "{Audience}";
        jwtOptions.Authority = "{Authority}";
        jwtOptions.ConfigurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(
            "https://login.microsoftonline.com/bruceb2c.onmicrosoft.com/v2.0/.well-known/openid-configuration?p={your-signin/signup-policy}",
            new OpenIdConnectConfigurationRetriever())
            {
                RefreshInterval = new TimeSpan(0, 5, 0) //5 minutes
            };
    });

    services.AddMvc();
}
...