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 = trueAjouter 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 : lesquels utiliser ?
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.
RequireClaimvérifie l’existence du claim ou la présence d’une valeur autorisée précise.RequireAssertiongè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
- Autorisation fondée sur les rôles
- Autorisation fondée sur les revendications
- Autorisation fondée sur des politiques
- Exigences d’autorisation personnalisées