การจัดการไคลเอนต์ ID・ไคลเอนต์ซีเคร็ต

ไคลเอนต์ ID ซีเคร็ต การยืนยันตัวตน การลงทะเบียนแอป
บทความนี้เหมาะสำหรับใคร
สำหรับนักพัฒนาที่ต้องการจัดการข้อมูลรับรองอย่างปลอดภัยหลังจากลงทะเบียนแอปของ ReceiptRoller แล้ว

ในการยืนยันตัวตนแบบ OAuth ของ ReceiptRoller จะใช้คู่ของไคลเอนต์ IDและไคลเอนต์ซีเคร็ตที่ออกให้แต่ละแอป ไคลเอนต์ ID เป็นตัวระบุที่เปิดเผยได้โดยไม่มีปัญหา แต่ไคลเอนต์ซีเคร็ตเป็นข้อมูลลับที่เทียบเท่ากับรหัสผ่าน

วิธีการขอ

  1. พอร์ทัลนักพัฒนา → แอป → เปิดแอปที่ต้องการ
  2. แท็บ "ข้อมูลรับรอง (Credentials)"
  3. ไคลเอนต์ ID จะแสดงอยู่(คัดลอกได้)
  4. ไคลเอนต์ซีเคร็ตจะแสดงเฉพาะตอนออกครั้งแรกเท่านั้น หลังจากนั้นต้องสร้างใหม่

ความแตกต่างระหว่างไคลเอนต์ ID กับซีเคร็ต

หัวข้อ ไคลเอนต์ ID ไคลเอนต์ซีเคร็ต
เปิดเผยได้หรือไม่เปิดเผยได้ไม่เปิดเผย
บทบาทระบุตัวแอปยืนยันตัวตนแอป
โค้ดฝั่งไคลเอนต์ใส่ได้ห้ามเด็ดขาด(ฝั่งเซิร์ฟเวอร์เท่านั้น)
พารามิเตอร์ URLใส่ได้ห้ามเด็ดขาด

กฎการจัดเก็บ

  • จัดเก็บในenvironment variableหรือบริการจัดการซีเคร็ต(AWS Secrets Manager, Azure Key Vault, GCP Secret Manager เป็นต้น)
  • อย่าเขียนตรงในซอร์สโค้ด(หากปนเข้า git จะจบเลยเมื่อรีโพซิทอรีรั่วไหล)
  • ใช้ซีเคร็ตคนละตัวสำหรับโปรดักชัน/สเตจจิง/การพัฒนา
  • สิทธิ์การเข้าถึงให้เฉพาะ service account ของสภาพแวดล้อมโปรดักชันเท่านั้น
  • ไม่รวมไว้ในล็อก・การพิมพ์เออเรอร์

การจัดการเมื่อรั่วไหล

ขั้นตอนกรณีฉุกเฉิน:หากสงสัยว่าซีเคร็ตรั่วไหล ให้สร้างใหม่ทันทีในพอร์ทัลนักพัฒนา ซีเคร็ตตัวเก่าจะถูกทำให้ใช้ไม่ได้
  1. พอร์ทัลนักพัฒนา → แอป → ข้อมูลรับรอง → "สร้างซีเคร็ตใหม่"
  2. จัดเก็บซีเคร็ตใหม่อย่างปลอดภัย
  3. อัปเดต environment variable ของสภาพแวดล้อมโปรดักชันแล้วดีพลอย
  4. เลือก "เพิกถอนซีเคร็ตเก่าทันที" หรือ "เพิกถอนหลัง 24 ชั่วโมง"
  5. ตรวจสอบจากล็อกตรวจสอบว่าไม่มีการใช้งานโดยมิชอบ

การใช้งานในหลายสภาพแวดล้อม

แนะนำให้ลงทะเบียนแอปโปรดักชันและแอปพัฒนาแยกกันเสมอ หากนำหลายสภาพแวดล้อมมารวมในแอปเดียว จะมีความเสี่ยงที่ความผิดพลาดตอนพัฒนาจะส่งผลกระทบต่อผู้ใช้จริงในโปรดักชัน

แอปโปรดักชัน:MyApp Production
  → ไคลเอนต์ ID: prod_xxx
  → ซีเคร็ต: บริการจัดการซีเคร็ตของโปรดักชัน

แอปพัฒนา:MyApp Dev
  → ไคลเอนต์ ID: dev_xxx
  → ซีเคร็ต: .env ของนักพัฒนาแต่ละคน

คู่มือที่เกี่ยวข้อง