การใช้งาน API policies
Azure API Management
Fiodar Sazanavets
Senior Software Engineer at Microsoft
รู้จัก API policies
เหมือนพนักงานรักษาความปลอดภัย: ตรวจสอบว่าใครเข้าได้บ้าง
เหมือน
ป้ายจำกัดความเร็ว
: ควบคุมการไหลของ traffic
ปกป้อง API โดยบล็อกผู้ใช้ที่ไม่พึงประสงค์
จำกัดคำขอเพื่อไม่ให้ระบบรับโหลดเกิน
ทุกอย่างที่ผ่าน API Gateway ถูกควบคุมด้วย policies
ภาพรวม API Management policies
Policies คือชุดกฎเกณฑ์ที่เขียนในรูปแบบ XML
มองได้ว่าเป็น
pipeline ของ request และ response
แทรกกฎได้ในแต่ละขั้นตอนเพื่อควบคุม traffic
ที่สำคัญ: ไม่ต้องแก้ไข backend code เลย
ตัวอย่าง: backward compatibility
ขอบเขตของ policy
Policies ระดับ global ใช้กับทั้งองค์กร
กฎเหล่านี้ควบคุม API ทั้งหมด
ใช้กับ API รายตัวได้
ช่วยจัดการ product เฉพาะ
ใช้กับ endpoint รายตัวได้
สำหรับการควบคุมระดับละเอียด
Inbound policies
เมื่อมี request เข้ามา APIM จะประมวลผล
inbound policies
ก่อน
ตัวอย่าง: ปรับแอปเวอร์ชันเก่าให้รองรับ API ใหม่โดยเพิ่มข้อมูลใน payload
Inbound policies ช่วยป้องกันการโจมตีที่อันตราย
ตรวจจับ request ที่ผิดรูปแบบหรือขาดข้อมูลสำคัญ
กั้นข้อมูลไม่ดีตั้งแต่ต้น ก่อนถึง service
ความปลอดภัยและการจำกัดอัตราคำขอ
ช่วยจำกัด client ที่ส่งคำขอมากเกินไป เพื่อความเป็นธรรมและปกป้อง backend
Inbound policies ยังดูแลด้าน
ความปลอดภัย
ด้วย
policy ที่ใช้บ่อย: ตรวจสอบ JWT (JSON Web Token)
มองว่า JWT เป็นบัตรประจำตัวดิจิทัลที่ client ส่งมา
policy validate-jwt ตรวจว่า token ถูกต้อง ยังไม่หมดอายุ และมาจาก issuer ที่น่าเชื่อถือ (เช่น Entra ID)
สำหรับควบคุมเพิ่มเติม: ใช้ rate-limiting และ quota policies
Outbound policies
หลัง backend ประมวลผล
outbound policies
จะปรับ response ก่อนส่งคืน
เหมือนร้านอาหาร: request -> ครัว (backend) -> จัดจาน (outbound policies)
Outbound policies ทำได้หลายอย่าง:
ลบส่วนที่ไม่ต้องการ (เช่น header ที่มีข้อมูลละเอียดอ่อน)
เพิ่มคำสั่ง (เช่น caching directives)
แปลงรูปแบบ (เช่น XML เป็น JSON)
Response ตรงตามที่ client คาดหวัง ไม่ว่า backend จะเตรียมมาแบบใด
มาฝึกกันเถอะ!
Azure API Management
Preparing Video For Download...