ภาพรวม
บทนำ
ผู้ใช้ทุกคนที่เชื่อมโยงกับองค์กร Casdoor เดียวกันจะมีสิทธิ์เข้าถึงแอปพลิเคชันขององค์กรนั้นๆ อย่างไรก็ตาม อาจมีกรณีที่คุณต้องการจำกัดสิทธิ์การเข้าถึงของผู้ใช้ไปยังแอปพลิเคชันบางอย่างหรือทรัพยากรเฉพาะภายในแอปพลิเคชัน ในกรณีเช่นนี้ คุณสามารถใช้คุณสมบัติ Permission
ที่มีให้โดย Casbin
ก่อนที่จะเจาะลึกเข้าไปในหัวข้อนี้ สำคัญที่จะต้องมีความเข้าใจพื้นฐานเกี่ยวกับการทำงานของ Casbin และแนวคิดที่เกี่ยวข้อง เช่น โมเดล (Models), นโยบาย (Policies) และอะแดปเตอร์ (Adapters) โดยสรุป โมเดลกำหนดโครงสร้างของนโยบายสิทธิ์การเข้าถึงของคุณ และเกณฑ์สำหรับการจับคู่คำขอกับนโยบายเหล่านี้และผลลัพธ์ของพวกเขา นโยบาย ในทางกลับกัน อธิบายกฎสิทธิ์การเข้าถึงที่เฉพาะเจาะจง เมื่อ Casbin ได้รับข้อมูลโมเดลและนโยบายที่จำเป็นแล้ว มันสามารถบังคับใช้การควบคุมสิทธิ์การเข้าถึงกับคำขอที่เข้ามา อะแดปเตอร์ทำหน้าที่เป็นชั้นกลาง ปกป้องตัวปฏิบัติการของ Casbin จากแหล่งที่มาของนโยบาย ทำให้สามารถเก็บนโยบายไว้ในที่ต่างๆ เช่น ไฟล์หรือฐานข้อมูล
กลับมาที่หัวข้อการกำหนดค่าสิทธิ์การเข้าถึงใน Casdoor คุณสามารถเพิ่มโมเดลสำหรับองค์กรของคุณในรายการการกำหนดค่า Model
ภายใน Casdoor Web UI และนโยบายสำหรับองค์กรของคุณในรายการการกำหนดค่า Permission
เครื่องมือแก้ไขออนไลน์ของ Casbin ที่ Casbin Online Editor สามารถให้ไฟล์โมเดลและนโยบายที่ปรับแต่งได้ตามสถานการณ์การใช้งานเฉพาะของคุณ คุณสามารถนำเข้าไฟล์โมเดลเข้าสู่ Casdoor ผ่าน Web UI ได้อย่างง่ายดายเพื่อใช้โดย Casbin ที่มีอยู่ในตัว อย่างไรก็ตาม สำหรับนโยบาย (คือ รายการการกำหนดค่า Permission
ใน Casdoor Web UI) จำเป็นต้องมีคำแนะนำเพิ่มเติม ซึ่งจะถูกหารือในภายหลัง
เช่นเดียวกับที่แอปพลิเคชันของคุณต้องบังคับใช้การควบคุมสิทธิ์การเข้าถึงผ่าน Casbin ที่มีอยู่ในตัวของ Casdoor, Casdoor เองก็ใช้โมเดลและนโยบายของตัวเองเพื่อควบคุมสิทธิ์การเข้าถึงสำหรับ API อินเทอร์เฟซผ่าน Casbin แม้ว่า Casdoor สามารถเรียกใช้ Casbin จากโค้ดภายในได้ แต่แอปพลิเคชันภายนอกไม่สามารถทำได้ เป็นทางออก Casdoor เปิดเผย API สำหรับแอปพลิเคชันภายนอกเพื่อเรียกใช้ Casbin ที่มีอยู่ในตัว เราจะให้คำจำกัดความของอินเทอร์เฟซ API เหล่านี้และคำแนะนำเกี่ยวกับวิธีการใช้งานในไม่ช้า
ในตอนท้ายของบทนี้ เราจะนำเสนอตัวอย่างที่ใช้งานได้จริงเพื่อแสดงวิธีการทำงานร่วมกันระหว่าง Casdoor กับแอปพลิเคชันภายนอกสำหรับการควบคุมสิทธิ์การเข้าถึง
เรามาเริ่มกันเลย!