Documentation

Permission แบบละเอียด

Menu Profile, Resource Profile, OU/member modes, preview, การทดสอบและถอนสิทธิ์

On this page

Permission แบบละเอียด

อ้างอิง Source of Truth: core-api/docs/contracts/klynx-phibek-permission-administration.md

หลักคิดก่อนตั้งสิทธิ์

สิทธิ์ Klynx มีหลายชั้นและต้องผ่านทุกชั้นที่เกี่ยวข้อง:

  1. ผู้ใช้ login สำเร็จและเลือก Active Organization ถูกต้อง
  2. License เปิด feature นั้นให้กับองค์กร
  3. Menu Permission ทำให้เห็น/เข้าเมนู
  4. Resource Permission จำกัดกล้อง, Resource Group, KControl หรือ Edge ที่เห็น
  5. Backend ตรวจสิทธิ์ซ้ำแม้ผู้ใช้พิมพ์ URL โดยตรง

การซ่อนเมนูไม่ใช่ security boundary และการเห็นเมนูไม่ได้แปลว่าจะเห็นอุปกรณ์ทุกตัว

หน้า Menu Permission

หน้า Menu Permission ของ Klynx
  1. รายการ Permission Profile
  2. ชื่อ สถานะ และคำอธิบาย Profile
  3. เลือก OU และกำหนดขอบเขตสมาชิก
  4. เลือกเมนูที่อนุญาต
  5. ตรวจ preview แล้วบันทึก

ความหมายของค่า

ค่าความหมายแนวทาง
ชื่อ Profileชื่อสำหรับผู้ดูแล ไม่ใช่ชื่อ role ใน Keycloakตั้งตามทีม+ขอบเขต เช่น Operator ชั้น 2 — Menu
สถานะเปิด/ปิด contribution ของ profile นี้ปิดเพื่อหยุดชั่วคราว; ตรวจ profile อื่นด้วย
Org Unitกลุ่มผู้รับสิทธิ์เลือก OU ที่เล็กที่สุดตาม least privilege
รวมหน่วยงานย่อยขยายจาก OU ที่เลือกลงไปยังลูกทั้งหมดเปิดเมื่อโครงสร้างลูกควรรับสิทธิ์เหมือนกันจริง
สมาชิกทั้งหมดทุก member ที่อยู่ใน OU scopeเหมาะกับ policy ระดับทีม
เลือกสมาชิกwhitelist เฉพาะสมาชิกใน OU นั้นใช้เมื่อคนใน OU ทำหน้าที่ต่างกัน
ยกเว้นสมาชิกblacklist สมาชิกบางรายใช้เป็นข้อยกเว้น ไม่ควรแทนการออกแบบ OU
ตัดสิทธิ์ OU บรรพบุรุษป้องกันสิทธิ์ inherited จาก OU ชั้นบนทั้งก้อนตรวจ preview ทุกครั้งเพราะผลกระทบกว้าง
เมนูcapability ที่ปรากฏใน navigation/effectiveAccessเปิดเฉพาะเมนูที่จำเป็นกับงาน

หน้า Resource Permission

หน้า Resource Permission ของ Klynx
  1. รายการ Resource Profile
  2. Subject: OU และสมาชิก
  3. Resource Group และ child scope
  4. อุปกรณ์ direct grant และ relation
  5. Preview ผลสุทธิและบันทึก
ค่าความหมายผลที่ต้องตรวจ
Resource Groupกลุ่มอุปกรณ์หลักที่ grantกล้อง/อุปกรณ์ต้องเป็นสมาชิก RG นั้นจริง
รวม Resource Group ย่อยรวมอุปกรณ์ใน descendant RGระวังเพิ่มอุปกรณ์ใหม่ในอนาคตแล้วติดสิทธิ์อัตโนมัติ
Device scope = allรวมอุปกรณ์ที่ resolver นับว่าอยู่ในขอบเขตกลุ่ม พร้อม direct grant ที่รองรับเหมาะกับทีมดูแลพื้นที่ทั้งกลุ่ม
Device scope = selectedจำกัดอุปกรณ์ตามรายการที่เลือก/องค์ประกอบของกลุ่มใช้เมื่อสิทธิ์ต้องละเอียดระดับเครื่อง
Camera/KControl/Edgedirect resource grantไม่แทน Menu Permission ของหน้าที่ใช้ resource นั้น
Relationวิธีที่ทำกับ resource เช่น view/edit/delete ตาม UI ที่เปิดให้เลือกให้ relation ต่ำสุดที่ทำงานได้
Previewผลรวม include/exclude ก่อน saveใช้ตรวจความผิดพลาด แต่ต้อง smoke ด้วย member จริงอีกครั้ง

ตัวอย่าง Least Privilege

ต้องการให้ operator-a ดูกล้องชั้น 2 และใช้ Video Wall แต่ห้ามแก้กล้อง:

  1. Menu Profile: OU ชั้น 2, เลือกเฉพาะ operator-a, เปิด Map และ Video Wall
  2. Resource Profile: OU เดียวกัน/สมาชิกเดียวกัน, RG กล้องชั้น 2, relation view
  3. ไม่เปิดเมนู Device Settings และไม่ให้ relation edit/delete
  4. login เป็น operator-a: ตรวจ sidebar, รายการกล้อง, Video Wall และลอง URL หน้าแก้ไขโดยตรงว่าถูก deny

วิธีถอนสิทธิ์อย่างปลอดภัย

  1. ค้นทุก active profile ที่อาจ grant ผู้ใช้หรือ resource เดียวกัน
  2. เอาสมาชิก/resource ออกจากทุก profile ที่เกี่ยวข้อง หรือปิด profile เมื่อทั้ง profile ไม่ใช้แล้ว
  3. บันทึกและ refresh; โดยทั่วไปมีผลรอบ access refresh ถัดไป โดยมี cache backstop ประมาณ 30 วินาที
  4. ทดสอบด้วย session ของ member ทั้งเมนู, direct URL, list และ stream
  5. ถ้ายังเห็นข้อมูล ให้ตรวจ profile อื่นก่อนสรุปว่า cache ผิด

เช็กลิสต์ก่อนส่งมอบ

  • เลือก Active Organization ถูกต้อง
  • License เปิด feature
  • Menu Profile active และ subject ถูกคน
  • Resource Profile active และ scope ถูกกลุ่ม/เครื่อง
  • Preview ไม่มีสมาชิกหรืออุปกรณ์เกิน
  • บัญชี member จริงเห็นเฉพาะเมนูและ resource ที่ตั้งใจ
  • URL/stream ที่อยู่นอก scope ตอบ deny
  • ไม่มี token, password หรือข้อมูลลับในชื่อ/คำอธิบาย profile