แบ่งสิทธิ์ผู้ใช้ในระบบบริษัทอย่างไร ให้เหมาะกับหน้าที่ของแต่ละทีม

วางสิทธิ์จากข้อมูลและงานที่แต่ละทีมต้องทำ แยกการดู แก้ อนุ⁠มัติ และส่งออก พร้อมตัวอย่างขอบเขตรายทีม การเปลี่ยนหน้าที่ และเกณฑ์ทดสอบ

โดย เผยแพร่ อ่านประมาณ 4 นาที

บัตรผู้ใช้สามใบวางข้างแฟ้มงานและกุญแจ ในภาพลายเส้นสีน้ำเงินพร้อมแถบสีส้ม
ในบทความนี้
  1. แยกการเห็นข้อมูลออกจากการเปลี่ยนข้อมูล
  2. เงื่อนไขของงานอาจสำคัญกว่าชื่อบทบาท
  3. การย้ายทีมและส่ง⁠ต่องานต้องเปลี่ยนสิทธิ์ตาม
  4. ตรวจรับด้วยทั้งสิ่งที่อนุญาตและสิ่งที่ต้องปฏิเสธ

ระบบที่มีเพียง “ผู้ดูแล” กับ “ผู้ใช้ทั่วไป” อาจเริ่มง่าย แต่เมื่อหลายทีมทำงานร่วม⁠กัน มักเจอว่าคนหนึ่งต้องแก้บางข้อมูลแต่ไม่ควรเห็นทุกอย่าง หรือหัวหน้าต้องอนุ⁠มัติได้แต่ไม่ควรเปลี่ยนรายการที่อนุ⁠มัติแล้วโดยไม่มีประวัติ

การแบ่งสิทธิ์ควรเริ่มจากหน้าที่และข้อมูล ไม่ใช่ตำแหน่งสูงต่ำเพียงอย่าง⁠เดียว เขียนให้ได้ว่าใครทำอะไรกับข้อมูลชุดใด ภายใต้เงื่อนไขไหน แล้วจึงนำไปกำหนดบทบาทในระบบ

แยกการเห็นข้อมูลออกจากการเปลี่ยนข้อมูล

การเปิดอ่าน แ⁠ก้⁠ไ⁠ข ลบ อนุ⁠มัติ และส่งออกเป็นคนละการกระทำ ผู้ที่ต้องดูงานเพื่อช่วยติดตามไม่จำเป็นต้องมีสิทธิ์แก้ทั้งหมด และผู้ที่แก้รายการได้อาจไม่ใช่ผู้⁠มีหน้าที่ยืนยันรายการนั้น

กำหนดขอบเขตข้อมูลด้วย เช่น เฉพาะงานของตัวเอง งานที่ได้⁠รับมอบหมาย งานในสาขา หรือทุกงานที่​รั⁠บ⁠ผิ⁠ด⁠ช⁠อ⁠บ ชื่อบทบาทว่า “ฝ่ายขาย” ยังไม่บอกว่าควรเปิดรายการของทีมอื่นได้หรือไม่

ตัวอย่างเพื่อเริ่มคุยเรื่องสิทธิ์ ต้องปรับตามหน้าที่และข้อมูลของธุรกิจจริง
บทบาทตัวอย่างงานที่ต้องทำขอบเขตที่ต้องตกลง
ผู้แจ้งงานสร้างคำ⁠ขอและดูผลคำ⁠ขอของตนหรือที่ได้⁠รับสิทธิ์
ผู้ปฏิบัติงานอั⁠ป⁠เ⁠ด⁠ต​งานที่​รั⁠บ⁠ผิ⁠ด⁠ช⁠อ⁠บงานที่มอบหมายและข้อมูลประกอบที่จำเป็น
หัวหน้าทีมจัดคนและตรวจผลงานในทีมและเงื่อนไขการยืนยัน
ผู้ตรวจข้อมูลเปิดดูและให้ข้อสังเกตชุดข้อมูลที่ได้⁠รับมอบหมาย โดยไม่แก้ต้นฉบับ
ผู้ดูแลระบบจัดการบัญชีและการตั้ง⁠ค่าแยกจากสิทธิ์อนุ⁠มัติธุรกรรมตามความจำเป็น

ตารางนี้เป็นตัวอย่างการคุย ไม่ใช่ชุดสิทธิ์ที่เหมาะกับทุกธุรกิจ ให้เจ้าของกระบวนการยืนยันว่าข้อมูลใดจำเป็นและเหตุใด ก่อนขยายสิทธิ์เพื่อแก้ปัญหาเฉพาะหน้า

เงื่อนไขของงานอาจสำคัญกว่าชื่อบทบาท

คนเดียวกันอาจแก้ร่างได้แต่แก้รายการที่ยืนยันแล้วไม่ได้ หรือดูโครงการที่ได้⁠รับมอบหมายได้แต่ดูโครงการอื่นไม่ได้ ระบบจึงต้องพิจารณาทั้งผู้ใช้ รายการ และสถานะที่เกี่ยวข้อง

แนวทาง Authorization ของ OWASP เน้นการให้สิทธิ์เท่าที่จำเป็นและตรวจการ⁠เข้า⁠ถึงอย่างสม่ำเสมอ การซ่อนปุ่มในหน้า⁠จออย่าง⁠เดียวไม่ควรเป็นตัวตัดสินว่าคำ⁠ขอได้⁠รับอนุญาตหรือไม่

สำหรับผู้ใช้ทั่วไป หน้า⁠จอควรอธิบายสถานะและทางขอความช่วยเหลือเมื่อทำบางอย่างไม่ได้ เช่น รายการนี้ปิดแล้วหรือต้องให้​ผู้⁠รั⁠บ⁠ผิ⁠ด⁠ช⁠อ⁠บ​ดำเนิน⁠การ โดยไม่เปิดเผยข้อมูลที่ผู้ใช้ไม่มีสิทธิ์เห็น

หากต้องยกเว้นสิทธิ์ชั่วคราว ให้ระบุเหตุผล ผู้⁠อนุ⁠มัติ และเวลาทบทวน ไม่ปล่อยให้การช่วยงานหนึ่งครั้งกลายเป็นสิทธิ์ถาวรที่ไม่มีใครจำได้ว่ามาจากไหน

ตารางสิทธิ์แบบเรียบง่ายวางข้างบัตรบทบาทและคลิปหนีบเอกสาร เพื่อสื่อถึงการ⁠ตรวจสิทธิ์ตามหน้าที่
ชื่อบทบาทเพียงอย่าง⁠เดียวยังไม่พอ ต้องกำหนดด้วยว่าทำอะไรกับข้อมูลชุดไหนได้

การย้ายทีมและส่ง⁠ต่องานต้องเปลี่ยนสิทธิ์ตาม

เมื่อคนเปลี่ยนหน้าที่ ต้องทบทวนทั้งสิทธิ์ใหม่และสิทธิ์เดิมที่ไม่จำเป็น ไม่เพียงเพิ่มกลุ่มใหม่ทับไปเรื่อย ๆ งานค้างของเจ้าของเดิมควรถูกส่ง⁠ต่อให้คนที่​รั⁠บ⁠ผิ⁠ด⁠ช⁠อ⁠บ​จริงตามกระบวนการ

แยกบัญชีบุคคลออกจากบัญชีที่ระบบใช้เชื่อม⁠ต่อ เพราะมีวิธีดูแลและผลกระทบต่างกัน บั⁠น⁠ทึ⁠ก​ว่าใคร​รั⁠บ⁠ผิ⁠ด⁠ช⁠อ⁠บ​บัญชีเชื่อม⁠ต่อและงานใดจะหยุดหากเปลี่ยนสิทธิ์ ไม่แก้ด้วยการให้ทุกบัญชีเป็นผู้ดูแลทั้งหมด

กรณีผู้ดูแลหลักไม่อยู่ ควรมี​ผู้⁠รั⁠บ⁠ผิ⁠ด⁠ช⁠อ⁠บ​สำรองและวิธีขอสิทธิ์ที่​ต⁠ร⁠ว⁠จ⁠ส⁠อ⁠บ​ได้ แผนนี้ต้องรักษาขอบเขตที่จำเป็น ไม่อาศัยการส่งรหัสผ่านร่วม⁠กันไปในกลุ่มแชท

ให้คน​รั⁠บ⁠ผิ⁠ด⁠ช⁠อ⁠บ​กระบวนการทบทวนรายชื่อและขอบเขตเป็นระยะตามความเหมาะ⁠สม โดยดูว่าผู้ใช้ยังมีงานที่ต้องใช้สิทธิ์นั้นจริงหรือไม่

ตรวจรับด้วยทั้งสิ่งที่อนุญาตและสิ่งที่ต้องปฏิเสธ

ทบทวนสิทธิ์เมื่อฟังก์ชันใหม่เปลี่ยนขอบเขตของการกระทำ เช่น การส่งออกข้อมูลเป็นชุดอาจให้การ⁠เข้า⁠ถึงมากกว่าการเปิดดูงานที่มอบหมายหนึ่งรายการ แม้จะอยู่ใน​เ⁠ม⁠นู​เดียวกัน

เตรียมบัญชีทดสอบตามบทบาทและรายการที่ต่างขอบเขต ให้ผู้​พั⁠ฒ⁠น⁠า​แสดงว่าคนที่ควรทำงานได้ทำได้ครบ และคนที่ไม่เกี่ยวข้องไม่ได้ข้อมูลหรือเปลี่ยนรายการนั้นผ่านทางอื่น

ครอบคลุมการเปิด​ลิ⁠ง⁠ก์​ตรง ด⁠า⁠ว⁠น์⁠โ⁠ห⁠ล⁠ด​ไ⁠ฟ⁠ล์ ส่งออก และเปลี่ยนสถานะ ไม่ตรวจเฉพาะ​เ⁠ม⁠นู​ที่มองเห็น หากสิทธิ์เปลี่ยนระหว่างใช้⁠งาน ต้องตรวจว่าขอบเขตใหม่ถูกใช้ตามการออก⁠แบบของระบบ

เก็บหลักฐานการกระทำสำคัญให้ตรวจได้ว่าใครทำอะไรกับรายการใดเมื่อไร โดยเลือกข้อมูลที่จำเป็น ไม่เก็บเนื้อหาสำคัญทั้งหมดใน​บั⁠น⁠ทึ⁠ก​เพียงเพราะทำได้

นำกติกาเหล่า⁠นี้ใส่ในขอบเขต​เ⁠ว็⁠บ​แ⁠อ⁠ป​รุ่นแรก ตั้ง⁠แต่ต้น และหากมีผู้ใช้ภายนอก อ่านการวาง Customer Portal เพื่อแยกสิทธิ์ของลูกค้าออกจากงานภายในให้ครบ

ระบบมีแค่ผู้ดูแลกับผู้ใช้ทั่วไป จนต้องให้สิทธิ์เกินงาน?

Talvyn Labs ช่วยแปลงหน้าที่ของทีมเป็นขอบเขตข้อมูลและการกระทำที่ชัดเจน พร้อมทดสอบทั้งงานที่ควรทำได้และสิ่งที่ต้องถูกปฏิเสธ

วางสิทธิ์ระบบให้ตรงหน้าที่ทีม

มีโจทย์ธุรกิจ ที่ต้องการ⁠ปรึกษา?

ไม่ว่าจะเป็น​เ⁠ว็⁠บ⁠ไ⁠ซ⁠ต์​ใหม่ การ⁠พั⁠ฒ⁠น⁠า​ผลิตภัณฑ์ หรือการ⁠เชื่อม⁠ต่อระบบ สามารถแจ้งราย⁠ละเอียดทาง​อี⁠เ⁠ม⁠ล เพื่อนัดเวลาปรึกษาได้

ข้อมูลเบื้อง⁠ต้นก็เพียงพอ ราย⁠ละเอียดอื่นสามารถหารือร่วม⁠กันได้ภายหลัง

ติดต่อเรา
ส่ง​อี⁠เ⁠ม⁠ล​ถึงเรา
hello@talvynlabs.com
Facebook