Я использую ASP.NET Core
для написания своих API.Я заметил, что когда мой API достигает максимума из-за огромного количества запросов, на этапе аутентификации застревает много запросов.
Этап аутентификации - это этап, на котором проверяется, что токен Bearer
является допустимым для поставщика полномочий.,Поставщиком полномочий в моем случае является Azure AD.
Используя Application Insights, я вижу, что любые запросы API сначала идут в API openid-configuration
, чтобы получить соответствующую информацию от поставщика полномочий, чтобыв состоянии проверить токен Bearer.
Мне интересно, почему промежуточное ПО не кэширует конфигурацию openid, так как это не очень меняетсячасто - и даже если это простой вызов, когда мой сервис достигает пика ~ 1500 RPS, это становится настоящим бременем.
Интересно, какие настройки я пропустил, что позволяет мне кэшировать этот ответ.(надеюсь, такая настройка существует)
Спасибо!
ОБНОВЛЕНИЕ № 1 (добавлен код):
Способ включения промежуточного программного обеспечения заключается в следующем (в Startup.ConfigureServices
класс / метод)
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.Audience = _settings.AadAudience;
options.Authority = new Uri(
baseUri: _settings.AzureAdInstance,
relativeUri: _settings.AadTenantId.ToString())
.ToString();
});
services.AddMvc(options =>
{
options.Filters.Add(new AuthorizeFilter());
});