Перейти к содержанию

Применение авторизации к конечным точкам

Одним из основных преимуществ маршрутизации конечных точек является возможность легко применять авторизацию к конечной точке. Для контроллеров веб-API и страниц Razor для этого используется атрибут [Authorize].
Для других конечных точек, таких как ping-pong, можно использовать метод RequireAuthorization() при добавлении точки в приложение:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();
    app.UseAuthentication();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapPingPong("/ping")
            .RequireAuthorization();
        endpoints.MapRazorPages();
        endpoints.MapHealthChecks("/healthz")
            .RequireAuthorization("HealthCheckPolicy");
    });
}

Здесь показано два примера применения авторизации к конечным точкам:

  • RequireAuthorization() — равносильно применению атрибута [Authorize];
  • RequireAuthorization(policy) — если указано имя политики, будет использоваться выбранная политика авторизации. Политика должна быть настроена в ConfigureServices. Эквивалентно применению атрибута [Authorize("HealthCheckPolicy")].

Если авторизация применяется глобально, можно создать брешь в глобальной политике при помощи метода AllowAnonymous(), например

endpoints.MapPingPong("/ping").AllowAnonymous();

Что эквивалентно использованию атрибута [AllowAnonymous].


Последнее обновление : 9 мая 2023 г.
Дата создания : 26 октября 2022 г.

Комментарии

Комментарии