ข้ามไปยังเนื้อหาหลัก

Overview

Casbin เป็นไลบรารีควบคุมการเข้าถึงแบบโอเพนซอร์สที่ทรงพลังและมีประสิทธิภาพ ซึ่งรองรับโมเดลการควบคุมการเข้าถึงต่างๆ access control models เพื่อบังคับใช้การอนุญาตทั่วทั้งระบบ

การบังคับใช้กฎเซ็ตนั้นง่ายดายเหมือนการระบุวัตถุประสงค์, วัตถุ และการกระทำที่ต้องการอนุญาต (หรือรูปแบบอื่นๆ ตามความต้องการของคุณ) ในไฟล์ policy นี่คือสิ่งที่เหมือนกันในทุกกระบวนการที่ใช้ Casbin นักพัฒนา/ผู้ดูแลระบบมีอำนาจควบคุมเต็มที่เกี่ยวกับโครงสร้าง, การดำเนินการ และเงื่อนไขสำหรับการอนุญาต ซึ่งถูกตั้งค่าผ่านไฟล์ model Casbin มี Enforcer สำหรับการตรวจสอบคำขอที่เข้ามาตามนโยบายและไฟล์โมเดลที่ให้ไว้กับ Enforcer

ภาษาที่รองรับโดย Casbin

Casbin ให้การสนับสนุนสำหรับภาษาโปรแกรมมิ่งต่างๆ พร้อมที่จะรวมเข้ากับโปรเจกต์และกระบวนการทำงานใดๆ:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
พร้อมใช้งานในการผลิตพร้อมใช้งานในการผลิตพร้อมใช้งานในการผลิตพร้อมใช้งานในการผลิต
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
พร้อมใช้งานในการผลิตพร้อมใช้งานในการผลิตพร้อมใช้งานในการผลิตพร้อมใช้งานในการผลิต

ชุดคุณสมบัติสำหรับภาษาต่างๆ

เรากำลังทำงานอย่างเต็มที่เพื่อให้ Casbin มีชุดคุณสมบัติเดียวกันสำหรับทุกภาษา อย่างไรก็ตาม ความเป็นจริงนั้นไม่ได้สวยงามเสมอไป

คุณสมบัติGoJavaNode.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

หมายเหตุ - ✅ สำหรับ Watcher หรือ Role Manager หมายถึงมีอินเตอร์เฟซในไลบรารีหลักเท่านั้น ไม่ได้บ่งบอกว่ามีการดำเนินการ watcher หรือ role manager ที่พร้อมใช้งาน Casbin คืออะไร?

Casbin เป็นไลบรารีการอนุญาตที่สามารถใช้ในกระบวนการที่เราต้องการให้ object หรือเอนทิตี้ถูกเข้าถึงโดยผู้ใช้เฉพาะหรือ subject

ประเภทของการเข้าถึง คือ action, สามารถเป็น read, write, delete, หรือการกระทำอื่นๆ ตามที่นักพัฒนาตั้งค่า นี่คือวิธีที่ Casbin ถูกใช้งานอย่างแพร่หลาย และเรียกว่า "มาตรฐาน" หรือการไหล { subject, object, action } แบบคลาสสิก Casbin สามารถจัดการกับสถานการณ์การอนุญาตที่ซับซ้อนมากกว่าการไหลมาตรฐาน

สามารถเพิ่ม บทบาท (RBAC), คุณลักษณะ (ABAC) ฯลฯ Casbin ทำอะไร

บังคับใช้นโยบายในรูปแบบคลาสสิก { subject, object, action } หรือรูปแบบที่กำหนดเองตามที่คุณกำหนด

  1. ทั้งการอนุญาตและการปฏิเสธการอนุญาตได้รับการสนับสนุน จัดการการเก็บรักษาโมเดลการควบคุมการเข้าถึงและนโยบายของมัน
  2. จัดการการแมประหว่างบทบาทกับผู้ใช้และการแมประหว่างบทบาทกับบทบาท (หรือที่เรียกว่าลำดับชั้นบทบาทใน RBAC)
  3. สนับสนุน superusers ในตัวเช่น root หรือ administrator
  4. Support built-in superusers like root or administrator. ผู้ใช้งานระดับสูงสามารถทำอะไรก็ได้โดยไม่ต้องมีสิทธิ์อย่างชัดเจน
  5. ให้ตัวดำเนินการหลายตัวที่สร้างมาเพื่อรองรับการจับคู่กฎ ตัวอย่างเช่น, keyMatch สามารถทำให้คีย์ทรัพยากร /foo/bar ตรงกับรูปแบบ /foo*

สิ่งที่ Casbin ไม่ทำ NOT Do

  1. การตรวจสอบสิทธิ์ (หรือการตรวจสอบ username และ password เมื่อผู้ใช้เข้าสู่ระบบ)
  2. จัดการรายชื่อผู้ใช้หรือบทบาท

มันสะดวกกว่าสำหรับโปรเจกต์ในการจัดการรายชื่อผู้ใช้, บทบาท, หรือรหัสผ่านของตนเอง ผู้ใช้มักจะมีรหัสผ่านของตนเอง และ Casbin ไม่ได้ถูกออกแบบมาเพื่อเป็นที่เก็บรหัสผ่าน อย่างไรก็ตาม, Casbin จัดเก็บการแมประหว่างผู้ใช้กับบทบาทสำหรับสถานการณ์ RBAC