← Katalog
E I A C

Casbin

Security-as-Code

Autoryzacja jako kod — RBAC/ABAC/ACL w wielu językach.

★ 18 000 Apache-2.0 #security#authorization#rbac#abac

Casbin to biblioteka autoryzacji, w której logikę dostępu opisujesz deklaratywnie: model (np. RBAC, ABAC, ACL) i polityki trzymasz w plikach lub bazie, a kod tylko pyta „czy ten podmiot może wykonać tę akcję na tym zasobie?”. Dzięki temu reguły dostępu są oddzielone od aplikacji, wersjonowane i spójne między usługami — dostępny jest w wielu językach (Go, Node, Python, PHP i inne).

Kiedy używać

  • Potrzebujesz elastycznej autoryzacji (role, atrybuty) wspólnej dla wielu usług.
  • Chcesz oddzielić reguły dostępu od kodu aplikacji.
  • Zależy Ci na jednym modelu autoryzacji w różnych językach.

Przykład użycia

# model.conf — definicja RBAC
[request_definition]
r = sub, obj, act
[policy_definition]
p = sub, obj, act
[role_definition]
g = _, _
[matchers]
m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act
# policy.csv
p, editor, article, write
g, alice, editor

Warto wiedzieć

  • Działa na poziomie aplikacji (authz), podczas gdy Open Policy Agent jest uniwersalnym silnikiem polityk.
  • Polityki możesz trzymać w Gicie albo w bazie (adaptery).