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

ใช้ Keycloak JavaScript Adapter กับ Single Page App

JavaScript adapter ช่วยเว็บแอปจัด flow ล็อกอินและสถานะ token กับ Keycloak อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

ใช้ Keycloak JavaScript Adapter กับ Single Page App

JavaScript adapter ช่วยเว็บแอปจัด flow ล็อกอินและสถานะ token กับ Keycloak เหมาะกับ SPA ที่ต้องใช้ SSO และทำงานร่วมกับ API แยกบริการ บทความนี้สรุปแนวคิดจากเอกสารทางการของ Keycloak และจุดที่ควรตรวจเมื่อนำไปใช้จริง

ภาพรวม

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

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

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

แอปเรียก API ผ่าน access token หลังผู้ใช้ยืนยันตัวตนตาม OIDC flow

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

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

เหมาะกับ SPA ที่ต้องใช้ SSO และทำงานร่วมกับ API แยกบริการ

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

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

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

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

ข้อควรระวัง

อย่าเก็บ client secret ใน browser และต้องตรวจ token ที่ API ไม่ใช่เชื่อฝั่งหน้าเว็บ

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

สรุป

JavaScript adapter ช่วยเว็บแอปจัด flow ล็อกอินและสถานะ token กับ Keycloak เหมาะกับ SPA ที่ต้องใช้ SSO และทำงานร่วมกับ API แยกบริการ ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

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