跳到主要内容
返回文章列表

ตั้ง OIDC Client ใน Keycloak สำหรับเว็บแอป

OIDC client แทนแอปที่ใช้ Keycloak ออก token และยืนยันตัวตน อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

ตั้ง OIDC Client ใน Keycloak สำหรับเว็บแอป

OIDC client แทนแอปที่ใช้ Keycloak ออก token และยืนยันตัวตน เหมาะกับเว็บที่ต้องการ single sign-on และไม่อยากจัดการรหัสผ่านเอง บทความนี้สรุปแนวคิดจากเอกสารทางการของ Keycloak และจุดที่ควรตรวจเมื่อนำไปใช้จริง

ภาพรวม

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

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

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

แอปส่งผู้ใช้ไปล็อกอินแล้วรับ authorization code เพื่อนำไปแลก token ตาม flow ที่ตั้งไว้

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

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

เหมาะกับเว็บที่ต้องการ single sign-on และไม่อยากจัดการรหัสผ่านเอง

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

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

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

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

ข้อควรระวัง

จำกัด redirect URI ให้ตรงปลายทางจริงและแยก public กับ confidential client ให้ถูก

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

สรุป

OIDC client แทนแอปที่ใช้ Keycloak ออก token และยืนยันตัวตน เหมาะกับเว็บที่ต้องการ single sign-on และไม่อยากจัดการรหัสผ่านเอง ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

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