การใช้งาน API policies

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

รู้จัก API policies

การจัดการ API policies

  • เหมือนพนักงานรักษาความปลอดภัย: ตรวจสอบว่าใครเข้าได้บ้าง
  • เหมือน ป้ายจำกัดความเร็ว: ควบคุมการไหลของ traffic
  • ปกป้อง API โดยบล็อกผู้ใช้ที่ไม่พึงประสงค์
  • จำกัดคำขอเพื่อไม่ให้ระบบรับโหลดเกิน
  • ทุกอย่างที่ผ่าน API Gateway ถูกควบคุมด้วย policies
Azure API Management

ภาพรวม API Management policies

APIM policies

  • Policies คือชุดกฎเกณฑ์ที่เขียนในรูปแบบ XML
  • มองได้ว่าเป็น pipeline ของ request และ response
  • แทรกกฎได้ในแต่ละขั้นตอนเพื่อควบคุม traffic
  • ที่สำคัญ: ไม่ต้องแก้ไข backend code เลย
Azure API Management

ตัวอย่าง: backward compatibility

การรักษา backward compatibility ผ่าน APIM

Azure API Management

ขอบเขตของ policy

  • Policies ระดับ global ใช้กับทั้งองค์กร
    • กฎเหล่านี้ควบคุม API ทั้งหมด
  • ใช้กับ API รายตัวได้
    • ช่วยจัดการ product เฉพาะ
  • ใช้กับ endpoint รายตัวได้
    • สำหรับการควบคุมระดับละเอียด

ขอบเขตของ policy

Azure API Management

Inbound policies

  • เมื่อมี request เข้ามา APIM จะประมวลผล inbound policies ก่อน
  • ตัวอย่าง: ปรับแอปเวอร์ชันเก่าให้รองรับ API ใหม่โดยเพิ่มข้อมูลใน payload
  • Inbound policies ช่วยป้องกันการโจมตีที่อันตราย
  • ตรวจจับ request ที่ผิดรูปแบบหรือขาดข้อมูลสำคัญ
  • กั้นข้อมูลไม่ดีตั้งแต่ต้น ก่อนถึง service

การเพิ่มข้อมูลใน inbound

การตรวจสอบ request

Azure API Management

ความปลอดภัยและการจำกัดอัตราคำขอ

Inbound policy ด้านความปลอดภัย

การบังคับใช้ quota ของ request

  • ช่วยจำกัด client ที่ส่งคำขอมากเกินไป เพื่อความเป็นธรรมและปกป้อง backend
  • Inbound policies ยังดูแลด้าน ความปลอดภัย ด้วย
  • policy ที่ใช้บ่อย: ตรวจสอบ JWT (JSON Web Token)
  • มองว่า JWT เป็นบัตรประจำตัวดิจิทัลที่ client ส่งมา
  • policy validate-jwt ตรวจว่า token ถูกต้อง ยังไม่หมดอายุ และมาจาก issuer ที่น่าเชื่อถือ (เช่น Entra ID)
  • สำหรับควบคุมเพิ่มเติม: ใช้ rate-limiting และ quota policies
Azure API Management

Outbound policies

  • หลัง backend ประมวลผล outbound policies จะปรับ response ก่อนส่งคืน
  • เหมือนร้านอาหาร: request -> ครัว (backend) -> จัดจาน (outbound policies)
  • Outbound policies ทำได้หลายอย่าง:
    • ลบส่วนที่ไม่ต้องการ (เช่น header ที่มีข้อมูลละเอียดอ่อน)
    • เพิ่มคำสั่ง (เช่น caching directives)
    • แปลงรูปแบบ (เช่น XML เป็น JSON)

การเพิ่มข้อมูลใน response

การแปลง response

  • Response ตรงตามที่ client คาดหวัง ไม่ว่า backend จะเตรียมมาแบบใด
Azure API Management

มาฝึกกันเถอะ!

Azure API Management

Preparing Video For Download...