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
- Site officiel : https://cerbos.dev
- Repository GitHub : https://github.com/cerbos/cerbos
- Documentation : https://docs.cerbos.dev
🔗 Pages Liées
- cat-authentication (n'existe pas encore, OK) — Catégorie imprécise, c'est de l'authorization
- app-keycloak — IdM/SSO (couplage naturel pour l'auth)
- app-authentik — IdM moderne (couplage pour l'auth)
- app-open-policy-agent (n'existe pas encore) — Concurrent direct
- recettes-docker-compose
- securisation-home-lab