ABAC
NestJS 🔴 SeniorDefinition
Attribute-Based Access Control : systeme d'autorisation base sur les attributs du sujet, de la ressource et du contexte. Plus flexible que RBAC.
Analogie
Comme une boite de nuit avec des regles complexes : age + tenue + liste VIP + heure determinant l'acces.
Exemple de code
// Regle ABAC: l'auteur peut modifier son propre article
canActivate(ctx: ExecutionContext) {
const user = ctx.switchToHttp().getRequest().user;
const articleId = ctx.switchToHttp().getRequest().params.id;
const article = await this.articleService.findOne(articleId);
return article.authorId === user.id;
}
Cas d'usage
Implementer des regles d'autorisation fines comme 'un auteur ne peut modifier que ses propres articles'.