ABAC

NestJS 🔴 Senior

Definition

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'.

Termes lies

#security