Triển khai chính sách API

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

Giới thiệu về chính sách API

Chính sách Quản lý API

  • Như bảo vệ: kiểm tra ai được vào
  • Như biển giới hạn tốc độ: kiểm soát lưu lượng
  • Bảo vệ API bằng cách chặn tác nhân gây rối
  • Giới hạn yêu cầu để không ai làm quá tải hệ thống
  • Mọi thứ vào/ra API Gateway đều do chính sách kiểm soát
Azure API Management

Tổng quan chính sách Quản lý API

Chính sách APIM

  • Chính sách là bộ quy tắc mạnh, viết bằng XML đơn giản
  • Hãy xem chúng như đường ống yêu cầu–phản hồi
  • Chèn quy tắc ở các giai đoạn để điều hướng lưu lượng
  • Hay nhất: không cần sửa mã backend
Azure API Management

Ví dụ: tương thích ngược

Tương thích ngược qua APIM

Azure API Management

Phạm vi chính sách

  • Chính sách có thể là phạm vi toàn tổ chức
    • Các quy tắc này điều khiển mọi API
  • Có thể áp dụng cho từng API
    • Giúp quản lý một sản phẩm cụ thể
  • Có thể áp dụng cho từng endpoint
    • Dùng cho kiểm soát chi tiết

Phạm vi chính sách

Azure API Management

Chính sách inbound

  • Khi yêu cầu đến, APIM kiểm tra các chính sách inbound trước
  • Ví dụ: làm app cũ tương thích API mới bằng cách bổ sung dữ liệu payload
  • Inbound có thể chặn hành vi độc hại
  • Phát hiện yêu cầu sai định dạng hoặc thiếu dữ liệu
  • Hàng rào sớm này ngăn dữ liệu xấu vào dịch vụ

Bổ sung dữ liệu inbound

Xác thực yêu cầu

Azure API Management

Bảo mật và giới hạn lưu lượng

Chính sách inbound cho bảo mật

Áp hạn ngạch yêu cầu

  • Các chính sách này hạn chế client gửi quá mức, đảm bảo công bằng và bảo vệ backend
  • Inbound cũng chịu trách nhiệm về bảo mật
  • Phổ biến: xác thực JWT (JSON Web Token)
  • JWT như thẻ ID số do client gửi
  • Chính sách validate-jwt kiểm tra tính hợp lệ, còn hạn, và từ nhà phát hành tin cậy (vd: Entra ID)
  • Kiểm soát chặt hơn: rate limiting và quota
Azure API Management

Chính sách outbound

  • Sau khi backend xử lý, các chính sách outbound điều chỉnh phản hồi trước khi trả về
  • Hình dung như nhà hàng: yêu cầu -> bếp (backend) -> quầy trình bày (outbound)
  • Outbound có thể:
    • Xóa phần không cần (vd: header nhạy cảm)
    • Thêm hướng dẫn (vd: chỉ thị caching)
    • Đổi định dạng (vd: chuyển XML sang JSON)

Bổ sung dữ liệu phản hồi

Chuyển đổi phản hồi

  • Phản hồi đáp ứng kỳ vọng client, bất kể backend chuẩn bị ra sao
Azure API Management

Ayo berlatih!

Azure API Management

Preparing Video For Download...