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:
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| Casbin | jCasbin | node-Casbin | PHP-Casbin |
| Siap untuk produksi | Siap untuk produksi | Siap untuk produksi | Siap untuk produksi |
![]() | ![]() | ![]() | |
|---|---|---|---|
| PyCasbin | Casbin.NET | Casbin-CPP | Casbin-RS |
| Siap untuk produksi | Siap untuk produksi | Siap untuk produksi | Siap 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.
| Fitur | Go | Java | Node.js | PHP | Python | C# | Delphi | Rust | C++ | Lua | Dart | Elixir |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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β
- Menegakkan kebijakan dalam bentuk klasik
{ subject, object, action }atau bentuk kustom sesuai yang Anda definisikan. Kedua otorisasi izin dan tolak didukung. - Menangani penyimpanan model kontrol akses dan kebijakannya.
- Mengelola pemetaan pengguna-peran dan pemetaan peran-peran (alias hierarki peran dalam RBAC).
- Mendukung pengguna super seperti
rootatauadministrator. Seorang superuser dapat melakukan apapun tanpa izin eksplisit. - Sediakan beberapa operator bawaan untuk mendukung pencocokan aturan. Misalnya,
keyMatchdapat memetakan kunci sumber daya/foo/barke pola/foo*.
Apa yang Casbin TIDAK Lakukanβ
- Autentikasi (alias memverifikasi
usernamedanpasswordketika pengguna masuk) - 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.






