ข้ามไปยังเนื้อหา

การรักษาความปลอดภัยของแอป

การผสาน Keycloak เข้ากับแอปพลิเคชันไม่ใช่งานชิ้นเดียว — แต่เป็นหน้าที่สองส่วนที่ต่างกัน และต้องทำให้ถูกต้องทั้งคู่

Frontend (SPA บน browser, แอปมือถือ, หรือ public client ใดก็ตาม) รับผิดชอบประสบการณ์การ login โดย redirect ผู้ใช้ไปยัง Keycloak รับ authorization code กลับมา แลก token มาเก็บไว้ในหน่วยความจำ และนำ access token ต่อท้าย API call ทุกครั้ง

Backend (REST API หรือ resource server) ไม่ได้คุยกับ Keycloak แทนผู้ใช้ระหว่างการรับ request แต่รับ access token จาก header Authorization แทน จากนั้น backend จะดึง public key จาก JWKS endpoint ของ Keycloak แล้วตรวจสอบ signature, issuer, audience และ expiry ของ token เมื่อผ่านการตรวจสอบทั้งหมดแล้ว backend จึงเชื่อ identity claims ที่อยู่ใน token

บทเรียนสิ่งที่จะได้เรียนรู้
SPA Frontendติดตั้ง keycloak-js เริ่มต้นด้วย PKCE ต่อ token เข้า API call
Backend APIดึง JWKS ตรวจสอบ JWT ใน Node/Express ปฏิเสธ token ที่ไม่ถูกต้อง
Refresh และ LogoutupdateToken(), session lifetimes และ end-session endpoint
Framework AdaptersSpring Boot, Node และ pattern ทั่วไปของ OIDC resource server

แต่ละบทเรียนสามารถอ่านได้อิสระ — เลือกอ่านบทที่ตรงกับ stack ที่ใช้งานได้เลย

หน้าที่ของ FRONTEND ในแอปพลิเคชันที่รักษาความปลอดภัยด้วย Keycloak คืออะไร?
หน้าที่ของ BACKEND (resource server) ในแอปพลิเคชันที่รักษาความปลอดภัยด้วย Keycloak คืออะไร?
backend ใช้ endpoint ใดในการดึง public key ของ Keycloak เพื่อตรวจสอบ JWT?
เหตุใด backend จึงต้องตรวจสอบ JWT ในทุก request แทนที่จะเชื่อ frontend?