เจาะลึกการสร้าง One Tap สำหรับ PingFederate ภาค 2
เรียนรู้วิธีทำให้สภาพแวดล้อม PingFederate สามารถทำซ้ำได้ด้วย Docker, Terraform และ Make พร้อมการตั้งค่า OIDC และ PKCE

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- การสร้างสภาพแวดล้อม One Tap ต้องอาศัยนโยบายการยืนยันตัวตน OIDC client และ session ที่นำกลับมาใช้ใหม่ได้
- ใช้ Dockerfile เพื่อคัดลอกไฟล์ JAR และคอมโพเนนต์ต่างๆ ไปยังอิมเมจทางการของ PingFederate
- Terraform ทำหน้าที่จัดเตรียมโครงสร้างและนโยบายการยืนยันตัวตนแบบอินเทอร์แอกทีฟ
- ภาคต่อในตอนที่ 3 จะเป็นการนำเวิร์กโฟลว์นี้ไปทำเป็นวิดีโอสาธิตด้วย Kokoro, Playwright และ FFmpeg
ระบบเลือกบัญชีผู้ใช้ (Account Selector) ไม่ได้อาศัยเพียงแค่ Widget และ Java Adapter เท่านั้น แต่ PingFederate จำเป็นต้องมีนโยบายการยืนยันตัวตนที่สมบูรณ์ ตัวตรวจสอบข้อมูลประจำตัว (Credential Validator) เซสชันการยืนยันตัวตนที่ใช้ซ้ำได้ และ OIDC client บทความนี้จะพานักพัฒนาไปสู่การสร้างสภาพแวดล้อมดังกล่าวให้สามารถทำซ้ำได้อย่างง่ายดายผ่านเครื่องมืออย่าง Docker, Terraform และ Make
กระบวนการเริ่มต้นจากการสร้าง Adapter JAR ด้วย Maven ตามด้วยสคริปต์ PowerShell สำหรับสร้าง Server Profile Overlay ที่จัดระเบียบโครงสร้างไฟล์ต่างๆ เช่น เทมเพลตและชุดภาษา จากนั้น Dockerfile จะคัดลอกส่วนเสริมนี้เข้าไปยังอิมเมจหลักของ PingFederate เพื่อให้คอนเทนเนอร์สามารถดึงข้อมูลโปรไฟล์เริ่มต้นและผสานรวมเข้ากับระบบรันไทม์ได้อย่างราบรื่น
การจัดการข้อมูลประจำตัว (License Credentials) ถือเป็นสิ่งสำคัญที่ต้องแยกออกจากซอร์สโค้ด คอนเทนเนอร์จะดึงไลเซนส์สำหรับการพัฒนาในขั้นตอนเริ่มต้นผ่านตัวแปรสภาพแวดล้อมหรือไฟล์ .env ที่ถูกละเว้นจากการคอมมิต โดยคำสั่ง Make จะช่วยให้กระบวนการสร้างอิมเมจและรันคอนเทนเนอร์เป็นไปอย่างอัตโนมัติ
การใช้เครื่องมืออัตโนมัติอย่าง Docker และ Terraform ร่วมกับ PingFederate ช่วยลดความผิดพลาดในการตั้งค่าระบบยืนยันตัวตนที่มีความซับซ้อนสูง การแยกค่าคอนฟิกูเรชันออกจากซอร์สโค้ดไม่เพียงแต่ช่วยเรื่องความปลอดภัย แต่ยังทำให้ทีมพัฒนาสามารถย้ายสภาพแวดล้อมจากเครื่องท้องถิ่นไปยังระบบจริงได้อย่างมั่นใจ
ในส่วนของการจัดเตรียมนโยบายการยืนยันตัวตน (Authentication Chain) ทาง Terraform จะช่วยกำหนดค่าต่างๆ โดยนโยบายแบบอินเทอร์แอกทีฟถูกออกแบบมาให้ทำงานอย่างเป็นขั้นตอน:
- Identifier First: ส่ง Subject เป็นชื่อผู้ใช้ขาเข้า
- HTML Form: ดำเนินการยืนยันตัวตนให้เสร็จสิ้น
- เงื่อนไขความล้มเหลว: กำหนดค่าการหยุดทำงานหากเกิดข้อผิดพลาด
สำหรับการจดจำตัวตนของผู้ใช้ (Identifier) จะไม่มีการยกเลิกความต้องการรหัสผ่านแต่อย่างใด โดย HTML Form Adapter จะต้องกำหนดค่า Persistent Session เพื่อให้คำขอ OIDC ในภายหลังสามารถนำเซสชันนั้นกลับมาใช้ใหม่ได้ ช่วยให้ผู้ใช้ไม่ต้องกรอกรหัสผ่านซ้ำในการเข้าสู่ระบบครั้งถัดไป
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น