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)?
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());
});
Vous pouvez utiliser le [AllowAnonymous]
attribut de l'action spécifique.
[AllowAnonymous]
[HttpGet]
public ActionResult GetHealth() {
// ...
}