0Pricing
C# Academy · Leçon

Autorisation fondée sur des politiques

Définissez des politiques d’autorisation réutilisables.

Autorisation fondée sur des politiques est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 4 leçons au total.

Le modèle des politiques

Dans ASP.NET Core, toute vérification d’autorisation passe finalement par une politique. Les attributs de rôles et de claims sont des raccourcis qui construisent des politiques en arrière-plan.

La définition de politiques nommées centralise vos règles et permet de conserver des contrôleurs clairs.

[Authorize(Policy = "CanManageOrders")]

AddAuthorization

Enregistrez les politiques dans le conteneur de services avec AddAuthorization. Chaque politique reçoit un nom unique.

builder.Services.AddAuthorization(options =>
{
    options.AddPolicy("CanManageOrders", policy =>
        policy.RequireRole("admin", "sales"));
});

RequireAuthenticatedUser

L’exigence la plus élémentaire consiste simplement à vérifier que l’utilisateur est connecté. RequireAuthenticatedUser rejette les appelants anonymes.

options.AddPolicy("SignedIn", policy =>
    policy.RequireAuthenticatedUser());

Composer des exigences

Un générateur de politiques enchaîne plusieurs exigences ; la politique réussit uniquement si toutes sont satisfaites.

options.AddPolicy("SeniorEditor", policy =>
    policy
        .RequireAuthenticatedUser()
        .RequireRole("editor")
        .RequireClaim("seniority", "senior"));

La politique par défaut

Un attribut [Authorize] sans argument utilise la politique par défaut, qui exige simplement par défaut que l’utilisateur soit authentifié. Vous pouvez la remplacer.

options.DefaultPolicy = new AuthorizationPolicyBuilder()
    .RequireAuthenticatedUser()
    .RequireClaim("email_verified", "true")
    .Build();

La politique de repli

La politique de repli s’applique aux points de terminaison qui ne possèdent aucun attribut d’autorisation : c’est un moyen efficace de sécuriser l’application par défaut.

options.FallbackPolicy = new AuthorizationPolicyBuilder()
    .RequireAuthenticatedUser()
    .Build();
// Now every endpoint requires auth unless marked [AllowAnonymous]

Ne pas appliquer la politique avec AllowAnonymous

Lorsqu’une politique de repli verrouille tout, utilisez [AllowAnonymous] pour exposer des points de terminaison publics, comme la connexion ou les contrôles d’état.

[AllowAnonymous]
[HttpGet("health")]
public IActionResult Health() => Ok("healthy");

Appliquer des politiques aux points de terminaison

Référencez une politique par son nom dans les attributs ou les extensions d’API minimale.

// Controller
[Authorize(Policy = "SeniorEditor")]
public IActionResult Publish() => Ok();

// Minimal API
app.MapPost("/publish", () => Results.Ok())
   .RequireAuthorization("SeniorEditor");

Regrouper les points de terminaison

Appliquez une politique à un groupe de routes entier afin que chaque point de terminaison qu’il contient en hérite.

var admin = app.MapGroup("/admin")
               .RequireAuthorization("CanManageOrders");

admin.MapGet("/stats", () => Results.Ok());
admin.MapDelete("/{id}", (int id) => Results.NoContent());

Les exigences en interne

Chaque appel à Require* ajoute une IAuthorizationRequirement à la politique. Un gestionnaire correspondant évalue chaque exigence. Pour les mécanismes intégrés, cela se fait automatiquement ; les règles personnalisées nécessitent un gestionnaire personnalisé (leçon suivante).

// RequireRole("admin") adds a RolesAuthorizationRequirement
// RequireClaim(...) adds a ClaimsAuthorizationRequirement

Où définir les politiques

Conservez toutes les définitions de politiques dans une même méthode d’extension afin qu’elles soient faciles à trouver et à tester.

public static IServiceCollection AddAppPolicies(
    this IServiceCollection services)
{
    services.AddAuthorization(o =>
    {
        o.AddPolicy("SignedIn", p => p.RequireAuthenticatedUser());
        o.AddPolicy("CanManageOrders", p => p.RequireRole("admin"));
    });
    return services;
}

Vérification rapide

Testez votre compréhension des politiques par défaut et de repli.

Récapitulatif

Vous avez appris l’autorisation fondée sur les politiques :

  • AddPolicy définit des règles nommées et réutilisables.
  • RequireAuthenticatedUser, RequireRole et RequireClaim se composent selon une logique AND.
  • DefaultPolicy est utilisée par [Authorize] sans argument ; FallbackPolicy sécurise les points de terminaison non marqués.
  • [AllowAnonymous] permet de ne pas appliquer la politique.

Ensuite : les exigences et les gestionnaires d’autorisation personnalisés.

Questions Fréquemment Posées

La leçon « Autorisation fondée sur des politiques » est-elle gratuite ?

Oui — le texte complet de « Autorisation fondée sur des politiques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Autorisation fondée sur des politiques » ?

Définissez des politiques d’autorisation réutilisables. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C# Academy ?

Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Autorisation fondée sur des politiques » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?

Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Autorisation fondée sur les rôles
  2. Autorisation fondée sur les revendications
  3. Autorisation fondée sur des politiques
  4. Exigences d’autorisation personnalisées
← Retour à C# Academy