ABAC

NestJS 🔴 Senior

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

Termes liés

#security

← → au clavier pour passer d'une fiche à l'autre