web-dev-qa-db-fra.com

Autoriser l'accès anonyme au point de terminaison Healthcheck lorsque la stratégie de secours d'authentification est définie dans ASP.NET Core 3

asp.net core 3 permet de définir FallbackPolicy pour sécuriser les endpoints par défaut:

            services.AddAuthorization(options =>
            {
                options.FallbackPolicy = new AuthorizationPolicyBuilder()
                    .RequireAuthenticatedUser()
                    .Build();
            });

C'est une fonctionnalité intéressante, mais j'ai également un point de terminaison HealthCheck, qui nécessite une autorisation maintenant.

            services.AddHealthChecks();
            [...]
            app.UseEndpoints(endpoints => {
                endpoints.MapHealthChecks("/health");
                endpoints.MapControllers();
            });

Comment autoriser l'accès anonyme au point de terminaison HealthCheck (AUCUNE authentification ou autorisation)?

5
wxt

J'ai rencontré exactement le même problème, alors j'espère que cela vous aidera comme moyen plus satisfaisant de réaliser:

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapDefaultControllerRoute().RequireAuthorization();

            endpoints.MapHealthChecks("/health").WithMetadata(new AllowAnonymousAttribute());

        });
2
Michael Gregson

Vous pouvez utiliser le [AllowAnonymous] attribut de l'action spécifique.

  [AllowAnonymous]
  [HttpGet]
  public ActionResult GetHealth() {
    // ...
  }
1
Athanasios Kataras