0Pricing
C# Academy · Leçon

Autorisation fondée sur les revendications

Autorisez les utilisateurs en fonction de leurs revendications.

Autorisation fondée sur les revendications est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.

Au-delà des rôles

Les rôles sont un cas particulier des claims. L’autorisation fondée sur les claims vérifie n’importe quel claim : adresse e-mail, service, niveau d’abonnement ou indicateur de permission, et pas seulement les rôles.

Vous bénéficiez ainsi d’un contrôle plus précis sans devoir créer des dizaines de rôles.

// Claims a user might carry:
// department = sales
// subscription = pro
// email_verified = true

Ajouter des claims à un jeton

Émettez les claims que vos règles d’autorisation devront examiner. Le claim est une paire type/valeur.

var claims = new List<Claim>
{
    new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
    new Claim("department", "sales"),
    new Claim("subscription", "pro"),
    new Claim("email_verified", "true")
};

Définir une politique fondée sur les claims

Les règles fondées sur les claims s’expriment sous forme de politiques nommées enregistrées avec AddAuthorization. RequireClaim exige que l’utilisateur possède un claim donné.

builder.Services.AddAuthorization(options =>
{
    options.AddPolicy("VerifiedEmail", policy =>
        policy.RequireClaim("email_verified", "true"));
});

RequireClaim sans valeur

Si vous souhaitez seulement vérifier que le claim existe (quelle que soit sa valeur), appelez RequireClaim en indiquant uniquement le type.

options.AddPolicy("HasDepartment", policy =>
    policy.RequireClaim("department"));

RequireClaim avec des valeurs autorisées

Vous pouvez énumérer les valeurs autorisées : la politique est validée si le claim correspond à l’une quelconque d’entre elles.

options.AddPolicy("PaidTier", policy =>
    policy.RequireClaim("subscription", "pro", "enterprise"));

Appliquer une politique fondée sur les claims

Référencez la politique par son nom dans [Authorize].

[Authorize(Policy = "PaidTier")]
[HttpGet("premium-reports")]
public IActionResult Reports() => Ok();

Utilisation avec une API minimale

Les API minimales référencent le même nom de politique au moyen de RequireAuthorization.

app.MapGet("/premium-reports", () => Results.Ok())
   .RequireAuthorization("PaidTier");

Combiner plusieurs exigences de claims

Une politique peut enchaîner plusieurs appels à RequireClaim ; toutes les exigences doivent être satisfaites (AND).

options.AddPolicy("VerifiedSales", policy =>
    policy
        .RequireClaim("email_verified", "true")
        .RequireClaim("department", "sales"));

RequireAssertion pour une logique personnalisée

Lorsqu’une vérification de valeur fixe ne suffit pas, RequireAssertion exécute un prédicat arbitraire sur le ClaimsPrincipal.

options.AddPolicy("AdultUser", policy =>
    policy.RequireAssertion(ctx =>
    {
        var dob = ctx.User.FindFirst("birthdate")?.Value;
        return DateTime.TryParse(dob, out var d) &&
               d <= DateTime.UtcNow.AddYears(-18);
    }));

Lire les claims à l’exécution

Dans une action, vous pouvez toujours examiner directement les claims lorsque vous avez besoin de leur valeur, et pas seulement d’un contrôle oui/non.

var dept = User.FindFirst("department")?.Value;
var isPro = User.HasClaim("subscription", "pro");

Claims ou rôles&nbsp;: lesquels utiliser&nbsp;?

Utilisez les rôles pour les grandes fonctions professionnelles. Utilisez les claims pour les attributs et les indicateurs de fonctionnalité. Ils se composent : une politique peut exiger simultanément un rôle et plusieurs claims.

options.AddPolicy("SalesManager", policy =>
    policy.RequireRole("manager")
          .RequireClaim("department", "sales"));

Vérification rapide

Vérifiez votre compréhension des politiques fondées sur les claims.

Récapitulatif

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

  • N’importe quel claim, et pas seulement les rôles, peut contrôler l’accès.
  • RequireClaim vérifie l’existence du claim ou la présence d’une valeur autorisée précise.
  • RequireAssertion gère une logique de prédicat personnalisée.
  • Les claims et les rôles se composent au sein d’une même politique nommée.

Ensuite : le modèle complet fondé sur les politiques.

Questions Fréquemment Posées

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

Oui — le texte complet de « Autorisation fondée sur les revendications » 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 les revendications » ?

Autorisez les utilisateurs en fonction de leurs revendications. 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 2 sur 4.

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

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