การจัดการไคลเอนต์ ID・ไคลเอนต์ซีเคร็ต
ไคลเอนต์ ID
ซีเคร็ต
การยืนยันตัวตน
การลงทะเบียนแอป
บทความนี้เหมาะสำหรับใคร
สำหรับนักพัฒนาที่ต้องการจัดการข้อมูลรับรองอย่างปลอดภัยหลังจากลงทะเบียนแอปของ ReceiptRoller แล้ว
สำหรับนักพัฒนาที่ต้องการจัดการข้อมูลรับรองอย่างปลอดภัยหลังจากลงทะเบียนแอปของ ReceiptRoller แล้ว
ในการยืนยันตัวตนแบบ OAuth ของ ReceiptRoller จะใช้คู่ของไคลเอนต์ IDและไคลเอนต์ซีเคร็ตที่ออกให้แต่ละแอป ไคลเอนต์ ID เป็นตัวระบุที่เปิดเผยได้โดยไม่มีปัญหา แต่ไคลเอนต์ซีเคร็ตเป็นข้อมูลลับที่เทียบเท่ากับรหัสผ่าน
วิธีการขอ
- พอร์ทัลนักพัฒนา → แอป → เปิดแอปที่ต้องการ
- แท็บ "ข้อมูลรับรอง (Credentials)"
- ไคลเอนต์ ID จะแสดงอยู่(คัดลอกได้)
- ไคลเอนต์ซีเคร็ตจะแสดงเฉพาะตอนออกครั้งแรกเท่านั้น หลังจากนั้นต้องสร้างใหม่
ความแตกต่างระหว่างไคลเอนต์ ID กับซีเคร็ต
| หัวข้อ | ไคลเอนต์ ID | ไคลเอนต์ซีเคร็ต |
|---|---|---|
| เปิดเผยได้หรือไม่ | เปิดเผยได้ | ไม่เปิดเผย |
| บทบาท | ระบุตัวแอป | ยืนยันตัวตนแอป |
| โค้ดฝั่งไคลเอนต์ | ใส่ได้ | ห้ามเด็ดขาด(ฝั่งเซิร์ฟเวอร์เท่านั้น) |
| พารามิเตอร์ URL | ใส่ได้ | ห้ามเด็ดขาด |
กฎการจัดเก็บ
- จัดเก็บในenvironment variableหรือบริการจัดการซีเคร็ต(AWS Secrets Manager, Azure Key Vault, GCP Secret Manager เป็นต้น)
- อย่าเขียนตรงในซอร์สโค้ด(หากปนเข้า git จะจบเลยเมื่อรีโพซิทอรีรั่วไหล)
- ใช้ซีเคร็ตคนละตัวสำหรับโปรดักชัน/สเตจจิง/การพัฒนา
- สิทธิ์การเข้าถึงให้เฉพาะ service account ของสภาพแวดล้อมโปรดักชันเท่านั้น
- ไม่รวมไว้ในล็อก・การพิมพ์เออเรอร์
การจัดการเมื่อรั่วไหล
ขั้นตอนกรณีฉุกเฉิน:หากสงสัยว่าซีเคร็ตรั่วไหล ให้สร้างใหม่ทันทีในพอร์ทัลนักพัฒนา ซีเคร็ตตัวเก่าจะถูกทำให้ใช้ไม่ได้
- พอร์ทัลนักพัฒนา → แอป → ข้อมูลรับรอง → "สร้างซีเคร็ตใหม่"
- จัดเก็บซีเคร็ตใหม่อย่างปลอดภัย
- อัปเดต environment variable ของสภาพแวดล้อมโปรดักชันแล้วดีพลอย
- เลือก "เพิกถอนซีเคร็ตเก่าทันที" หรือ "เพิกถอนหลัง 24 ชั่วโมง"
- ตรวจสอบจากล็อกตรวจสอบว่าไม่มีการใช้งานโดยมิชอบ
การใช้งานในหลายสภาพแวดล้อม
แนะนำให้ลงทะเบียนแอปโปรดักชันและแอปพัฒนาแยกกันเสมอ หากนำหลายสภาพแวดล้อมมารวมในแอปเดียว จะมีความเสี่ยงที่ความผิดพลาดตอนพัฒนาจะส่งผลกระทบต่อผู้ใช้จริงในโปรดักชัน
แอปโปรดักชัน:MyApp Production → ไคลเอนต์ ID: prod_xxx → ซีเคร็ต: บริการจัดการซีเคร็ตของโปรดักชัน แอปพัฒนา:MyApp Dev → ไคลเอนต์ ID: dev_xxx → ซีเคร็ต: .env ของนักพัฒนาแต่ละคน
คู่มือที่เกี่ยวข้อง
หมวดหมู่
แท็ก
API (22)
OAuth (15)
Android (10)
iOS (9)
Webhook (8)
api (7)
oauth (5)
getting-started (4)
การลงทะเบียนแอป (4)
การแก้ปัญหา (4)