2
การควบคุมการเข้าถึงตามบทบาทที่ได้รับอนุญาต
ฉันพยายามที่จะเข้าใจถึงการแลกเปลี่ยนระหว่างบทบาทและสิทธิ์ต่าง ๆ เมื่อพูดถึงการควบคุมการเข้าถึง (การอนุญาต) เริ่มจากสิ่งที่กำหนดไว้: ในระบบของเราการอนุญาตจะเป็นหน่วยการเข้าถึงที่ละเอียด (" แก้ไขทรัพยากร X ", " เข้าถึงหน้าแดชบอร์ด " ฯลฯ ) บทบาทจะเป็นคอลเลกชันของ 1+ สิทธิ์ ผู้ใช้สามารถมีบทบาท 1+ ความสัมพันธ์เหล่านี้ทั้งหมด (ผู้ใช้, บทบาท, การอนุญาต) จะถูกเก็บไว้ในฐานข้อมูลและสามารถเปลี่ยนแปลงได้ทันทีและตามความจำเป็น ความกังวลของฉัน: (1) "เลวร้าย" เกี่ยวกับการตรวจสอบบทบาทสำหรับการควบคุมการเข้าถึงอย่างไร จะได้ประโยชน์อะไรบ้างจากการตรวจสอบการอนุญาตแทน กล่าวอีกนัยหนึ่งอะไรคือความแตกต่างระหว่างตัวอย่างโค้ดด้านล่าง: if(SecurityUtils.hasRole(user)) { // Grant them access to a feature } // vs. if(SecurityUtils.hasPermission(user)) { // Grant them access to …