Skip to main content
Back to articles

Keycloak Roles และ Groups ใช้จัดสิทธิ์อย่างไร

roles บอกสิทธิ์ที่ระบบเข้าใจ ส่วน groups ช่วยจัดผู้ใช้ที่มีคุณลักษณะหรือสิทธิ์ร่วมกัน อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

Keycloak Roles และ Groups ใช้จัดสิทธิ์อย่างไร

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

ภาพรวม

Keycloak จัดการการยืนยันตัวตนและออก token ให้แอป การตั้ง client, realm, session และสิทธิ์ต้องสอดคล้องกับการตรวจสอบฝั่ง API

หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: roles บอกสิทธิ์ที่ระบบเข้าใจ ส่วน groups ช่วยจัดผู้ใช้ที่มีคุณลักษณะหรือสิทธิ์ร่วมกัน จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ

หลักการทำงาน

แอปอ่านข้อมูลที่ออกใน token แล้วตัดสินสิทธิ์ฝั่งบริการตามกฎของตน

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

เหมาะกับงานแบบไหน

เหมาะกับองค์กรที่ผู้ใช้หลายกลุ่มต้องเข้าถึงความสามารถต่างกัน

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

ขั้นตอนนำไปใช้

  1. ทดลอง flow กับบัญชีทดสอบที่มีสิทธิ์ต่างกัน
  2. ตรวจ redirect URI, อายุ token และการปฏิเสธคำขอที่ API
  3. เตรียมวิธีกู้บัญชีผู้ดูแลและ rollback การตั้งค่า realm

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

ข้อควรระวัง

อย่าเชื่อการซ่อนปุ่มในหน้าเว็บเพียงอย่างเดียว ต้องตรวจสิทธิ์ที่ API ด้วย

แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ

สรุป

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

อ่านเพิ่มเติม: เอกสารทางการของ Keycloak