# รายการ IP ที่อนุญาตของไคลเอนต์

> **ข้อกำหนดบังคับ — รายการ IP ที่อนุญาตของไคลเอนต์**
>
> ไคลเอนต์ทุกราย **ต้องกำหนดรายการ IP ที่อนุญาต (IP Whitelist)** ก่อนใช้งาน Brick API ในสภาพแวดล้อม Production โดย Brick จะรับเฉพาะคำขอ API จากที่อยู่ IP ที่ลงทะเบียนและได้รับอนุญาตเท่านั้น ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ทุกเครื่องที่ส่งคำขอไปยัง Brick ใช้ **IP สาธารณะแบบคงที่ (static public IP)**

## เหตุใดรายการ IP ที่อนุญาตจึงสำคัญ?

รายการ IP ที่อนุญาตเป็นกลไกความปลอดภัยที่จำกัดการเข้าถึง API ให้เฉพาะที่อยู่ IP ที่ได้รับการอนุมัติ คำขอจากที่อยู่ IP นอกรายการจะถูกปฏิเสธ แม้จะพยายามเข้าถึง endpoint ของ Brick API ก็ตาม

การใช้รายการ IP ที่อนุญาตมีความสำคัญเนื่องจาก Brick API ประมวลผลกิจกรรมทางการเงิน รวมถึงการรับชำระเงินและการโอนเงิน การจำกัดแหล่งที่มาของคำขอช่วย:

- **ป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต:** เฉพาะโครงสร้างพื้นฐานของไคลเอนต์ที่ลงทะเบียนแล้วเท่านั้นที่สามารถส่งคำขอ API ได้
- **ลดความเสี่ยงจากการใช้ API ในทางที่ผิด:** สามารถบล็อกคำขอจากเครือข่ายหรือเซิร์ฟเวอร์ที่ไม่รู้จักก่อนประมวลผลต่อ
- **ปกป้องธุรกรรมทางการเงิน:** เพิ่มชั้นความปลอดภัยเพื่อลดความเสี่ยงจากคำขอธุรกรรมที่มาจากแหล่งที่ไม่ได้รับอนุญาต
- **สนับสนุนการควบคุมและการตรวจสอบความปลอดภัย:** ช่วยให้จัดการและตรวจสอบที่อยู่ IP ที่มีสิทธิ์เข้าถึงได้ง่ายขึ้น

รายการ IP ที่อนุญาตเป็น **ชั้นความปลอดภัยเพิ่มเติม** ไม่ใช่สิ่งทดแทนการยืนยันตัวตนสำหรับ API การปกป้องข้อมูลรับรอง หรือมาตรการความปลอดภัยอื่น ๆ

## ข้อกำหนดของรายการ IP ที่อนุญาต

| เกณฑ์ | ข้อกำหนด |
| --- | --- |
| การบังคับใช้ | **จำเป็น** สำหรับการเข้าถึง Brick API ใน Production |
| ประเภท IP | **IP สาธารณะแบบคงที่เท่านั้น** |
| จำนวนสูงสุด | **10 ที่อยู่ IP** ต่อการกำหนดค่ารายการที่อนุญาต |
| IP แบบไดนามิก | ไม่รองรับ |
| IP ส่วนตัว/ภายในเครือข่าย | ไม่สามารถใช้เป็น IP สาธารณะต้นทางของคำขอ API ได้ |
| ขอบเขต | คำขอขาเข้าไปยัง Brick API รวมถึง Send Money และ Receive Money |
| สภาพแวดล้อม | จัดการการกำหนดค่าของ Sandbox และ Production แยกกัน |
| บัญชีย่อย | จัดการการกำหนดค่าแยกกันสำหรับแต่ละบัญชีย่อย |

> **สำคัญ:** ลงทะเบียน **IP สาธารณะขาออก** ที่เซิร์ฟเวอร์ของคุณใช้จริงเมื่อส่งคำขอไปยัง Brick หากใช้ NAT Gateway, proxy หรือโครงสร้างพื้นฐานคลาวด์ ให้ใช้ IP สาธารณะขาออกแบบคงที่ที่ Brick มองเห็น ไม่ใช่ IP ส่วนตัวของเซิร์ฟเวอร์

## วิธีกำหนดรายการ IP ที่อนุญาต

1. เข้าสู่ระบบ **Brick Dashboard**
2. เปิดหน้า [**Configuration**](https://app.onebrick.io/configuration) ใน Brick Dashboard
3. เลือกแท็บ **Callback URL** ซึ่งมีการตั้งค่ารายการ IP ที่อนุญาต
4. ค้นหาการตั้งค่า **IP Whitelist / Incoming Request Validation**
5. เพิ่มที่อยู่ **IP สาธารณะแบบคงที่** ที่เซิร์ฟเวอร์ของคุณใช้เข้าถึง Brick API ได้สูงสุด **10 IP**
6. บันทึกการกำหนดค่า แล้วตรวจสอบว่ารายการ IP ที่อนุญาตเปิดใช้งานแล้ว
7. ทดสอบ API จาก IP ที่ลงทะเบียนเพื่อยืนยันว่าสามารถประมวลผลคำขอได้

![หน้า Configuration ที่เลือกแท็บ Callback URL](/assets/configuration/configuration-callback-url.png)

![การตั้งค่า Client IP Whitelist ใน Brick Dashboard](/assets/configuration/client-ip-whitelist.png)

> **หมายเหตุ:** ตรวจสอบสภาพแวดล้อมและบัญชีย่อยที่เลือกก่อนบันทึกการกำหนดค่า รายการ IP ของ Sandbox จะไม่ใช้กับ Production โดยอัตโนมัติ และในทางกลับกันก็เช่นเดียวกัน

## การตรวจสอบ IP ทำงานอย่างไร?

คำขอ API แต่ละรายการจะได้รับการตรวจสอบตามที่อยู่ IP ต้นทาง

| เงื่อนไข | ผลลัพธ์ |
| --- | --- |
| IP ต้นทางลงทะเบียนอยู่ในรายการที่อนุญาต | รับคำขอเพื่อดำเนินการยืนยันตัวตนและการตรวจสอบ API อื่น ๆ ต่อไป |
| IP ต้นทางไม่ได้ลงทะเบียน | ปฏิเสธคำขอด้วย HTTP `401` และรหัสข้อผิดพลาด `ip_not_whitelisted` |

### ตัวอย่างการตอบกลับสำหรับ IP ที่ไม่ได้ลงทะเบียน

```json
{
  "status": 401,
  "error": {
    "code": "ip_not_whitelisted",
    "message": "Request is not coming from whitelisted IP",
    "reason": "Source IP is not whitelisted in Brick servers"
  },
  "data": null
}
```

หากได้รับข้อผิดพลาด `ip_not_whitelisted` ให้ตรวจสอบ **IP สาธารณะขาออก** ของเซิร์ฟเวอร์ และตรวจสอบว่าได้เพิ่ม IP นั้นลงในรายการที่อนุญาตสำหรับสภาพแวดล้อมและบัญชีย่อยที่ถูกต้องแล้ว

## ก่อนใช้งาน Production

- ตรวจสอบว่าแอปพลิเคชันหรือเซิร์ฟเวอร์ทุกเครื่องที่จะเข้าถึง Brick API ใช้ IP สาธารณะแบบคงที่
- ลงทะเบียน IP ขาออกที่จำเป็นทั้งหมดโดยไม่เกินขีดจำกัด 10 IP
- ตรวจสอบว่าได้บันทึกการกำหนดค่าในสภาพแวดล้อม **Production** และบัญชีย่อยที่ถูกต้อง
- ทดสอบการเชื่อมต่อ API จาก IP ที่ลงทะเบียนก่อนเริ่มทำธุรกรรมใน Production
- หาก IP ขาออกเปลี่ยน ให้ปรับปรุงรายการที่อนุญาตก่อนเพื่อหลีกเลี่ยงการหยุดชะงักของการเชื่อมต่อ

สำหรับข้อมูลเพิ่มเติม โปรดดู [ภาพรวมการกำหนดค่า](/th/getting-started/configuration/overview)
