เอกสารประกอบ | บทช่วยสอน | ส่วนขยาย
ข่าวด่วน : ขณะนี้ Laravel-authz พร้อมใช้งานแล้ว ซึ่งเป็นไลบรารีการอนุญาตสำหรับเฟรมเวิร์ก Laravel
PHP-Casbin เป็นไลบรารีควบคุมการเข้าถึงโอเพ่นซอร์สที่ทรงพลังและมีประสิทธิภาพสำหรับโครงการ PHP ให้การสนับสนุนสำหรับการบังคับใช้การอนุญาตตามโมเดลการควบคุมการเข้าถึงต่างๆ
แคสบิน | เจแคสบิน | โหนด-Casbin | PHP-Casbin |
พร้อมการผลิต | พร้อมการผลิต | พร้อมการผลิต | พร้อมการผลิต |
ไพแคสบิน | แคสบิน.เน็ต | Casbin-CPP | แคสบิน-อาร์เอส |
พร้อมการผลิต | พร้อมการผลิต | พร้อมการผลิต | พร้อมการผลิต |
ต้องการแพ็คเกจนี้ใน composer.json
ของโปรเจ็กต์ของคุณ สิ่งนี้จะดาวน์โหลดแพ็คเกจ:
composer require casbin/casbin
require_once ' ./vendor/autoload.php ' ;
use Casbin Enforcer ;
$ e = new Enforcer ( " path/to/model.conf " , " path/to/policy.csv " );
$ sub = " alice " ; // the user that wants to access a resource .
$ obj = " data1 " ; // the resource that is going to be accessed .
$ act = " read " ; // the operation that the user performs on the resource .
if ( $ e -> enforce ( $ sub , $ obj , $ act ) === true ) {
// permit alice to read data1
} else {
// deny the request , show an error
}
write-article
, read-log
ไม่ได้ควบคุมการเข้าถึงบทความหรือบันทึกเฉพาะresource.Owner
สามารถใช้เพื่อรับแอตทริบิวต์สำหรับทรัพยากร/res/*
, /res/:id
และวิธี HTTP เช่น GET
, POST
, PUT
, DELETE
ใน php-casbin โมเดลการควบคุมการเข้าถึงจะถูกสรุปเป็นไฟล์ CONF โดยอิงตาม เมตาโมเดล PERM (นโยบาย ผลกระทบ คำขอ ตัวจับคู่) ดังนั้นการสลับหรืออัปเกรดกลไกการอนุญาตสำหรับโปรเจ็กต์จึงเป็นเรื่องง่ายพอๆ กับการแก้ไขการกำหนดค่า คุณสามารถปรับแต่งโมเดลการควบคุมการเข้าถึงของคุณเองโดยการรวมโมเดลที่มีอยู่เข้าด้วยกัน ตัวอย่างเช่น คุณสามารถรับบทบาท RBAC และคุณลักษณะ ABAC ร่วมกันภายในโมเดลเดียว และแบ่งปันกฎนโยบายชุดเดียว
โมเดลพื้นฐานและง่ายที่สุดใน php-casbin คือ 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
มันหมายความว่า:
php-casbin ทำอะไร:
{subject, object, action}
แบบคลาสสิกหรือแบบฟอร์มที่กำหนดเองตามที่คุณกำหนด รองรับทั้งอนุญาตและปฏิเสธการให้สิทธิ์root
หรือ administrator
ผู้ใช้ขั้นสูงสามารถทำอะไรก็ได้โดยไม่ต้องได้รับอนุญาตอย่างชัดแจ้งkeyMatch
สามารถแมปคีย์ทรัพยากร /foo/bar
กับรูปแบบ /foo*
สิ่งที่ php-casbin ไม่ได้ทำ:
username
และ password
เมื่อผู้ใช้เข้าสู่ระบบ)https://casbin.org/docs/en/overview
คุณยังสามารถใช้โปรแกรมแก้ไขออนไลน์ (http://casbin.org/editor/) เพื่อเขียนโมเดลและนโยบาย php-casbin ของคุณในเว็บเบราว์เซอร์ของคุณ มีฟังก์ชันต่างๆ เช่น syntax highlighting
และ code completion
เช่นเดียวกับ IDE สำหรับภาษาการเขียนโปรแกรม
https://casbin.org/docs/tutorials
php-casbin มี API สองชุดเพื่อจัดการสิทธิ์:
https://casbin.org/docs/en/adapters
https://casbin.org/docs/en/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
โครงการนี้เกิดขึ้นได้ต้องขอบคุณทุกคนที่มีส่วนร่วม
ขอขอบคุณผู้สนับสนุนของเราทุกคน! [มาเป็นผู้สนับสนุน]
สนับสนุนโครงการนี้ด้วยการเป็นผู้สนับสนุน โลโก้ของคุณจะแสดงที่นี่พร้อมลิงก์ไปยังเว็บไซต์ของคุณ [มาเป็นสปอนเซอร์]
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0
หากคุณมีปัญหาหรือคำขอคุณสมบัติใด ๆ โปรดติดต่อเรา ยินดีประชาสัมพันธ์ครับ.