Lewati ke konten utama

Overview

Casbin adalah pustaka kontrol akses sumber terbuka yang kuat dan efisien yang mendukung berbagai

Menegakkan seperangkat aturan sederhana seperti mencantumkan subjek, objek, dan tindakan yang diizinkan yang diinginkan (atau format lain sesuai kebutuhan Anda) dalam file kebijakan. Ini setara di semua alur di mana Casbin digunakan. Pengembang/administrator memiliki kontrol penuh atas tata letak, eksekusi, dan kondisi untuk otorisasi, yang ditetapkan melalui file model. Casbin menyediakan Enforcer untuk memvalidasi permintaan masuk berdasarkan file kebijakan dan model yang diberikan kepada Enforcer.

Bahasa yang Didukung oleh Casbin

Casbin menyediakan dukungan untuk berbagai bahasa pemrograman, siap untuk diintegrasikan dalam proyek dan alur kerja apa pun:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
Siap untuk produksiSiap untuk produksiSiap untuk produksiSiap untuk produksi
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Siap untuk produksiSiap untuk produksiSiap untuk produksiSiap produksi

Kumpulan Fitur untuk Berbagai Bahasa

Kami selalu bekerja keras untuk membuat Casbin memiliki kumpulan fitur yang sama untuk semua bahasa. Namun, realitas tidaklah semenarik itu.

FiturGoJavaNode.jsPHPPythonC#DelphiRustC++LuaDartElixir
Enforcement
RBAC
ABAC
Scaling ABAC (eval())
Adapter
Management API
RBAC API
Batch API
Filtered Adapter
Watcher
Role Manager
Multi-Threading
'in' of matcher

Catatan - ✅ untuk Watcher atau Role Manager hanya berarti memiliki antarmuka di pustaka inti. Ini tidak menunjukkan apakah ada implementasi watcher atau role manager yang tersedia.

Apa itu Casbin?

Casbin adalah pustaka otorisasi yang dapat digunakan dalam alur di mana kita ingin suatu objek atau entitas diakses oleh pengguna tertentu atau subjek. Jenis akses, yaitu action, Ini adalah cara penggunaan Casbin yang paling luas, dan disebut "standar"

Casbin mampu menangani banyak skenario otorisasi yang kompleks selain alur standar. Bisa ada penambahan peran (RBAC), atribut (ABAC), dll.

Apa yang Dilakukan Casbin

  1. Menegakkan kebijakan dalam bentuk klasik { subject, object, action } atau bentuk kustom sesuai yang Anda definisikan. Kedua otorisasi izin dan tolak didukung.
  2. Menangani penyimpanan model kontrol akses dan kebijakannya.
  3. Mengelola pemetaan pengguna-peran dan pemetaan peran-peran (alias hierarki peran dalam RBAC).
  4. Mendukung pengguna super seperti root atau administrator. Seorang superuser dapat melakukan apapun tanpa izin eksplisit.
  5. Sediakan beberapa operator bawaan untuk mendukung pencocokan aturan. Misalnya, keyMatch dapat memetakan kunci sumber daya /foo/bar ke pola /foo*.

Apa yang Casbin TIDAK Lakukan

  1. Autentikasi (alias memverifikasi username dan password ketika pengguna masuk)
  2. Mengelola daftar pengguna atau peran.

Lebih mudah bagi proyek untuk mengelola daftar pengguna, peran, atau kata sandi mereka. Pengguna biasanya memiliki kata sandi mereka, dan Casbin tidak dirancang sebagai wadah kata sandi. Namun, Casbin menyimpan pemetaan pengguna-peran untuk skenario RBAC.