Files
wiki/Catalogue-Self-Hosted/apps/app-cerbos.md
T
2026-06-09 18:40:21 +02:00

3.7 KiB


title: Cerbos created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, authorization, rbac, abac, go] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Authentication, https://github.com/cerbos/cerbos]

🔐 Cerbos

Service d'authorization (RBAC/ABAC) découplé des applications, avec politique déclarative YAML/Rego, PAS un service d'authentification.

📋 Informations Générales

Attribut Valeur
Nom Cerbos
Slug app-cerbos
Description Authorization as a Service (RBAC/ABAC)
Site officiel https://cerbos.dev
Repository https://github.com/cerbos/cerbos
Stars 4 444
Licence Apache 2.0
Langage principal Go
Catégorie Authentication (Authorization en réalité)
Tags [catalogue, authorization, rbac, abac, go]

📝 Description

⚠️ Note importante : Cerbos n'est PAS un serveur d'authentification (SSO/IdM). C'est un service d'authorization (autorisation). Il s'inscrit dans la même catégorie que Open Policy Agent (OPA), Casbin ou SpiceDB, et PAS avec Keycloak/Authelia/authentik.

Cerbos répond à la question : "Étant donné un utilisateur X, une action Y et une ressource Z, est-ce que l'accès est autorisé ?" Il implémente RBAC (Role-Based Access Control) et ABAC (Attribute-Based Access Control) de manière déclarative, avec des politiques écrites en YAML (langage propre) ou Rego (langage OPA, supporté).

Cerbos se distingue par son API simple (/check, /resources, /plan), son mode sidecar/embedded/managed, son SDK (Go, Java, Python, Node.js, etc.) et son admin UI (Cerbos Hub en option payante). C'est le choix idéal pour des applications modernes qui veulent externaliser l'authorization sans réinventer la roue.

🚀 Installation

Via Docker (recommandé)

# docker-compose.yml
services:
  cerbos:
    image: ghcr.io/cerbos/cerbos:latest
    command: server --config=/conf/config.yaml
    ports:
      - "3592:3592"   # HTTP API
      - "3593:3593"   # gRPC API
    volumes:
      - ./cerbos-conf:/conf
      - ./cerbos-policies:/policies

Installation manuelle

Binaire Go téléchargeable, ou SDK embedded dans une app Go (cerbos.svc.NewServer(...)).

⚙️ Configuration

  • Policies : fichiers YAML dans /policies
  • Storage : disque local, Git, S3, GCS, Blob
  • Schema : définition des ressources (Resource Policy)
  • Derived Roles : rôles calculés dynamiquement
  • Principals : attributs utilisateur passés en contexte
  • Audit Log : historique des décisions

🔗 Alternatives

  • Open Policy Agent (OPA) — Moteur de policies Rego, plus généraliste
  • Casbin — Librairie d'authz in-process
  • SpiceDB — Authz basé sur Google Zanzibar
  • Keycloak Authorization Services — Authz intégré à Keycloak

🔒 Sécurité

  • Isoler l'API Cerbos sur un réseau privé (port 3592/3593)
  • Activer TLS sur gRPC
  • Versionner les policies dans Git (audit, rollback)
  • Ne jamais exposer Cerbos directement sur Internet sans auth
  • Coupler Cerbos avec un IdM/SSO (Keycloak, authentik) pour l'authentification

📚 Ressources

🔗 Pages Liées