Nabû 1.0.0
Standardizing .NET developments with abstractions
index

ianchor-autotoc_md11ilinebr

summary: Modèle de droits et de rôles (Right, RightOn<T>, Role, RoleOn<T>) et service d'autorisation IHumbabaAuthorizationService qui vérifie qu'un utilisateur possède tous les droits demandés, éventuellement sur une ressource. use-when: contrôler les droits d'un utilisateur dans une application .NET 8/9 — par code, ou via Humbaba.Authorization.AspNet (contrôleurs) et Humbaba.Authorization.Blazor (pages et blocs) keywords: [autorisation, authorization, droits, rôles, right, righton, role, roleon, ihumbabaauthorize, ihumbabaauthorizationservice, getuserroles, ressource, contrôle d'accès] related: [Humbaba.Authorization.AspNet, Humbaba.Authorization.Blazor, Anum.Ioc]

topics: [rules, rights-and-roles, authorization-service]

Humbaba.Authorization (net8.0, net9.0) est le cœur de la famille Humbaba : le modèle d'autorisation et le service qui l'évalue.

  • Droit : Right (global) ou RightOn<T> (porte l'identifiant d'une ressource dans ResourceValue, ex. un code agence). Un droit est identifié par IdentityName (par défaut le nom complet de sa classe).
  • Rôle : Role / RoleOn<T> regroupe des droits (Rights). Il sert à donner des droits à un utilisateur, pas à être vérifié.
  • Service : on dérive AbstractHumbabaAuthorizationService et on implémente GetUserRoles (les rôles de l'utilisateur). AuthorizeAsync réussit si chaque droit demandé est accordé par au moins un rôle ; GetAuthorizedResources<T> liste les ressources accessibles.
  • Assemblage des rôles : RoleFactory.MakeRole<TRole>(ressource) remplit un rôle avec les droits fournis par un IRightsFactory<TRole>.
  • Contrat commun : IHumbabaAuthorize ; résultat : HumbabaAuthorizationResult (Succeeded, FailedRequirements).

Les attributs pour contrôleurs et pages sont dans les paquets AspNet et Blazor, qui ne suivent pas forcément le numéro de version du cœur. L'enregistrement par découverte passe par Anum.Ioc (DiscoverHumbabaServices).