สนับสนุนโดย
สร้างการรับรองความถูกต้องด้วยการป้องกันการฉ้อโกงเร็วขึ้น
ลองใช้ Stytch สำหรับการตรวจสอบสิทธิ์โดยใช้ API ก่อน การจัดการผู้ใช้และองค์กร SSO แบบหลายผู้เช่า MFA การพิมพ์ลายนิ้วมือของอุปกรณ์ และอื่นๆ
- กำลังมองหาโซลูชันการจัดการการเข้าถึงข้อมูลประจำตัวแบบโอเพ่นซอร์สและการเข้าถึง เช่น Okta, Auth0, Keycloak อยู่ใช่ไหม เรียนรู้เพิ่มเติมเกี่ยวกับ: Casdoor
ข่าว : ยังกังวลว่าจะเขียนนโยบาย jCasbin อย่างไรให้ถูกต้อง? Casbin online editor
กำลังมาช่วย! ลองใช้ได้ที่: https://casbin.org/editor/
jCasbin เป็นไลบรารีควบคุมการเข้าถึงโอเพ่นซอร์สที่ทรงพลังและมีประสิทธิภาพสำหรับโปรเจ็กต์ Java ให้การสนับสนุนสำหรับการบังคับใช้การอนุญาตตามโมเดลการควบคุมการเข้าถึงต่างๆ
แคสบิน | เจแคสบิน | โหนด-Casbin | PHP-Casbin |
พร้อมการผลิต | พร้อมการผลิต | พร้อมการผลิต | พร้อมการผลิต |
ไพแคสบิน | แคสบิน.เน็ต | Casbin-CPP | แคสบิน-อาร์เอส |
พร้อมการผลิต | พร้อมการผลิต | การทดสอบเบต้า | พร้อมการผลิต |
write-article
, read-log
ไม่ได้ควบคุมการเข้าถึงบทความหรือบันทึกเฉพาะเจาะจงresource.Owner
สามารถใช้เพื่อรับแอตทริบิวต์สำหรับทรัพยากร/res/*
, /res/:id
และวิธี HTTP เช่น GET
, POST
, PUT
, DELETE
ใน jCasbin โมเดลการควบคุมการเข้าถึงจะถูกสรุปเป็นไฟล์ CONF โดยอิงตาม เมตาโมเดล PERM (นโยบาย ผลกระทบ คำขอ ตัวจับคู่) ดังนั้นการสลับหรืออัปเกรดกลไกการอนุญาตสำหรับโปรเจ็กต์จึงเป็นเรื่องง่ายพอๆ กับการแก้ไขการกำหนดค่า คุณสามารถปรับแต่งโมเดลการควบคุมการเข้าถึงของคุณเองโดยการรวมโมเดลที่มีอยู่เข้าด้วยกัน ตัวอย่างเช่น คุณสามารถรับบทบาท RBAC และคุณลักษณะ ABAC ร่วมกันภายในโมเดลเดียว และแบ่งปันกฎนโยบายชุดเดียว
โมเดลพื้นฐานและง่ายที่สุดใน jCasbin คือ ACL CONF แบบจำลองของ ACL คือ:
# Request definition
[request_definition]
r = sub, obj, act
# Policy definition
[policy_definition]
p = sub, obj, act
# Policy effect
[policy_effect]
e = some(where ( p.eft == allow))
# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act
นโยบายตัวอย่างสำหรับโมเดล ACL มีลักษณะดังนี้:
p, alice, data1, read
p, bob, data2, write
มันหมายความว่า:
jCasbin ทำอะไร:
{subject, object, action}
แบบคลาสสิกหรือแบบฟอร์มที่กำหนดเองตามที่คุณกำหนด รองรับทั้งอนุญาตและปฏิเสธการให้สิทธิ์root
หรือ administrator
ผู้ใช้ขั้นสูงสามารถทำอะไรก็ได้โดยไม่ต้องได้รับอนุญาตอย่างชัดแจ้งkeyMatch
สามารถแมปคีย์ทรัพยากร /foo/bar
กับรูปแบบ /foo*
สิ่งที่ jCasbin ไม่ได้ทำ:
username
และ password
เมื่อผู้ใช้เข้าสู่ระบบ)สำหรับมาเวน:
<dependency>
<groupId>org.casbin</groupId>
<artifactId>jcasbin</artifactId>
<version>1.x.y (replace with latest version)</version>
</dependency>
https://casbin.org/docs/overview
คุณยังสามารถใช้โปรแกรมแก้ไขออนไลน์ (https://casbin.org/editor/) เพื่อเขียนโมเดลและนโยบาย jCasbin ของคุณในเว็บเบราว์เซอร์ของคุณ มีฟังก์ชันต่างๆ เช่น syntax highlighting
และ code completion
เช่นเดียวกับ IDE สำหรับภาษาการเขียนโปรแกรม
https://casbin.org/docs/tutorials
ใหม่ผู้บังคับใช้ jCasbin ด้วยไฟล์โมเดลและไฟล์นโยบาย:
Enforcer enforcer = new Enforcer ( "path/to/model.conf" , "path/to/policy.csv" );
หมายเหตุ: คุณยังสามารถเริ่มต้นผู้บังคับใช้ด้วยนโยบายใน DB แทนไฟล์ได้ โปรดดูรายละเอียดในส่วนการคงอยู่ของนโยบาย
เพิ่ม hook การบังคับใช้ลงในโค้ดของคุณก่อนที่การเข้าถึงจะเกิดขึ้น:
String sub = "alice" ; // the user that wants to access a resource.
String obj = "data1" ; // the resource that is going to be accessed.
String act = "read" ; // the operation that the user performs on the resource.
if ( enforcer . enforce ( sub , obj , act ) == true ) {
// permit alice to read data1
} else {
// deny the request, show an error
}
นอกจากไฟล์นโยบายคงที่แล้ว jCasbin ยังมี API สำหรับการจัดการสิทธิ์ ณ รันไทม์อีกด้วย ตัวอย่างเช่น คุณสามารถรับบทบาททั้งหมดที่กำหนดให้กับผู้ใช้ได้ดังนี้:
Roles roles = enforcer . getRoles ( "alice" );
ดู API การจัดการนโยบายสำหรับการใช้งานเพิ่มเติม
jCasbin มี API สองชุดเพื่อจัดการสิทธิ์:
นอกจากนี้เรายังมี UI บนเว็บสำหรับการจัดการโมเดลและการจัดการนโยบาย:
https://casbin.org/docs/adapters
https://casbin.org/docs/role-managers
แบบอย่าง | ไฟล์โมเดล | ไฟล์นโยบาย |
---|---|---|
เอซีแอล | basic_model.conf | basic_policy.csv |
ACL พร้อม superuser | basic_model_with_root.conf | basic_policy.csv |
ACL ที่ไม่มีผู้ใช้ | basic_model_without_users.conf | basic_policy_without_users.csv |
ACL ที่ไม่มีทรัพยากร | basic_model_without_resources.conf | basic_policy_without_resources.csv |
อาร์แบค | rbac_model.conf | rbac_policy.csv |
RBAC ที่มีบทบาททรัพยากร | rbac_model_with_resource_roles.conf | rbac_policy_with_resource_roles.csv |
RBAC กับโดเมน/ผู้เช่า | rbac_model_with_domains.conf | rbac_policy_with_domains.csv |
เอแบค | abac_model.conf | ไม่มี |
สงบ | keymatch_model.conf | keymatch_policy.csv |
ปฏิเสธแทนที่ | rbac_model_with_deny.conf | rbac_policy_with_deny.csv |
ลำดับความสำคัญ | Priority_model.conf | Priority_policy.csv |
มิดเดิลแวร์ตรวจสอบสิทธิ์สำหรับกรอบงานเว็บ: https://casbin.org/docs/middlewares
https://casbin.org/docs/adopters
เราให้การสนับสนุน Spring Boot คุณสามารถใช้ casbin-spring-boot-starter เพื่อพัฒนาอย่างรวดเร็วใน SpringBoot
ใน casbin-spring-boot-starter เราได้ทำการปรับเปลี่ยนดังต่อไปนี้:
https://github.com/jcasbin/casbin-spring-boot-starter
โครงการนี้เกิดขึ้นได้ต้องขอบคุณทุกคนที่มีส่วนร่วม
ขอขอบคุณผู้สนับสนุนของเราทุกคน! [มาเป็นผู้สนับสนุน]
สนับสนุนโครงการนี้ด้วยการเป็นผู้สนับสนุน โลโก้ของคุณจะแสดงที่นี่พร้อมลิงก์ไปยังเว็บไซต์ของคุณ [มาเป็นสปอนเซอร์]
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0
หากคุณมีปัญหาหรือการร้องขอคุณสมบัติใด ๆ โปรดติดต่อเรา ยินดีประชาสัมพันธ์ครับ.