Langkau ke kandungan utama

Overview

Casbin ialah perpustakaan kawalan akses sumber terbuka yang berkuasa dan cekap yang menyokong pelbagai

Menguatkuasakan satu set peraturan adalah mudah seperti menyenaraikan subjek, objek, dan tindakan yang dibenarkan yang diingini (atau dalam format lain mengikut keperluan anda) dalam fail polisi. Ini adalah sinonim di semua aliran di mana Casbin digunakan. Pembangun/pentadbir mempunyai kawalan penuh ke atas susun atur, pelaksanaan, dan syarat untuk kebenaran, yang ditetapkan melalui fail model. Casbin menyediakan Enforcer untuk mengesahkan permintaan masuk berdasarkan fail polisi dan model yang diberikan kepada Enforcer.

Bahasa yang Disokong oleh Casbin

Casbin menyediakan sokongan untuk pelbagai bahasa pengaturcaraan, bersedia untuk diintegrasikan dalam mana-mana projek dan aliran kerja:

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 untuk Pengeluaran

Set Ciri untuk Bahasa yang Berbeza

Kami sentiasa bekerja keras untuk memastikan Casbin mempunyai set ciri yang sama untuk semua bahasa. Namun, realitinya tidaklah begitu indah.

CiriGoJavaNode.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

Nota - ✅ untuk Watcher atau Role Manager hanya bermakna mempunyai antara muka dalam pustaka teras. Ia tidak menunjukkan sama ada terdapat pelaksanaan watcher atau role manager yang tersedia.

Apakah Casbin?

Casbin ialah pustaka keizinan yang boleh digunakan dalam aliran kerja di mana kita mahu suatu objek atau entiti diakses oleh pengguna tertentu atau subjek. Jenis akses, iaitu tindakan, Inilah cara Casbin digunakan secara meluas, dan ia disebut sebagai "standard"

Casbin mampu menangani banyak senario pengkalan kuasa yang kompleks selain daripada aliran standard. Terdapat penambahan peranan (RBAC), atribut (ABAC), dsb.

Apa yang Casbin Lakukan

  1. Menguatkuasakan dasar dalam bentuk klasik { subjek, objek, tindakan } atau bentuk tersuai seperti yang anda tetapkan. Kedua-dua kebenaran dan penolakan pengkalan kuasa disokong.
  2. Mengendalikan penyimpanan model kawalan akses dan dasarnya.
  3. Menguruskan pemetaan pengguna-peranan dan pemetaan peranan-peranan (juga dikenali sebagai hierarki peranan dalam RBAC).
  4. Menyokong pengguna sulit dalam yang diperbuat seperti root atau administrator. Seorang pengguna super boleh melakukan apa sahaja tanpa kebenaran eksplisit.
  5. Sediakan berbilang operator terbina dalam untuk menyokong pencocokan peraturan. Contohnya, keyMatch boleh memetakan kunci sumber /foo/bar kepada corak /foo*.

Apa yang Casbin TIDAK Lakukan

  1. Pengesahan (iaitu mengesahkan nama pengguna dan kata laluan apabila pengguna log masuk)
  2. Mengurus senarai pengguna atau peranan.

Lebih mudah untuk projek mengurus senarai pengguna, peranan, atau kata laluan mereka. Pengguna biasanya mempunyai kata laluan mereka, dan Casbin tidak direka sebagai bekas kata laluan. Walau bagaimanapun, Casbin menyimpan pemetaan peranan pengguna untuk senario RBAC.