В веб-проекте .NET Core (API, .NET Core 2.2, Kestrel) я реализовал Microsoft.AspNetCore.Diagnostics.HealthChecks.
Проверки работоспособности поддерживают параметры, доступные через определенный порт.
С этого момента для новых функций я получаю требование ограничить вызовы «портом управления» (тем же, который используют проверки работоспособности).
Так что мойВопрос в том, как реализовать фильтр портов, разрешающий вызовы на определенные пути только тогда, когда они приходят через определенный порт?(как в случае проверки работоспособности).
Сценарий: приложение работает на стандартном порту 5000.
Kestrel определил прослушивание двух портов
WebHost.CreateDefaultBuilder(args)
// ...
.UseStartup<Startup>()
.ConfigureKestrel((context, options) =>
{
int regularPort = 5000;
int managementPort = 5001;
options.Listen(IPAddress.Any, regularPort);
options.Listen(IPAddress.Any, managementPort);
}
)
;
Сейчасв методе настройки запуска я использую
app.UseHealthChecks("/health/ready", managementPort, ...
, что позволяет мне получить доступ к / health / ready только через 5001.
Но через 5001 все остальное также достижимо.В любом случае, чтобы отключить это?
Теперь другие функции (метрики) и т. Д. Также должны быть доступны более 5001, но не более 5000.