ABAC
NestJS 🔴 SeniorDéfinition
Attribute-Based Access Control : système 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 règles complexes : âge + tenue + liste VIP + heure déterminant l'accès.
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
Implémenter des règles d'autorisation fines comme 'un auteur ne peut modifier que ses propres articles'.