APIポリシーの実装

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

APIポリシーの概要

API Managementポリシー

  • ドアマンのように:入場者を確認します
  • 速度制限標識のように:トラフィックを制御します
  • 問題のあるアクセスをブロックしてAPIを保護します
  • リクエストをスロットリングしてシステム過負荷を防ぎます
  • APIゲートウェイの入出力はすべてポリシーで制御されます
Azure API Management

API Managementポリシーの概要

APIMポリシー

  • ポリシーはシンプルなXMLで記述された強力なルールの集合です
  • リクエスト/レスポンスパイプラインとして捉えることができます
  • 異なるステージにルールを挿入してトラフィックを制御します
  • バックエンドコードを変更する必要はありません
Azure API Management

例:後方互換性

APIMによる後方互換性

Azure API Management

ポリシースコープ

  • ポリシーはグローバルに組織全体へ適用できます
    • 全APIを制御するルールです
  • 個別のAPIに適用することも可能です
    • 特定の製品を管理できます
  • 個別のエンドポイントにも適用できます
    • きめ細かい制御に使用します

ポリシースコープ

Azure API Management

インバウンドポリシー

  • リクエスト到着時、APIMはまずインバウンドポリシーを評価します
  • 例:ペイロードデータを拡張し、旧アプリを新APIに対応させる
  • インバウンドポリシーは悪意のあるアクセスを防御します
  • 不正なリクエストや不足データを検出します
  • 不正データがサービスに到達する前に遮断します

インバウンドデータ拡張

リクエスト検証

Azure API Management

セキュリティとスロットリング

セキュリティ用インバウンドポリシー

リクエストクォータの適用

  • 過剰なクライアントを抑制し、公平な利用とバックエンド保護を実現します
  • インバウンドポリシーはセキュリティも担います
  • 代表的なポリシー:JWT(JSON Web Token)の検証
  • JWTはクライアントが送信するデジタルIDカードと考えられます
  • validate-jwtポリシーは正当性・有効期限・信頼できる発行者(例:Entra ID)を確認します
  • より強力な制御:レート制限とクォータポリシー
Azure API Management

アウトバウンドポリシー

  • バックエンド処理後、アウトバウンドポリシーがレスポンスを調整して返します
  • レストランの注文に例えると:リクエスト→厨房(バックエンド)→盛り付け(アウトバウンドポリシー)
  • アウトバウンドポリシーでできること:
    • 不要な部分を削除(例:機密ヘッダー)
    • 指示を追加(例:キャッシュディレクティブ)
    • 形式を変換(例:XMLをJSONに変換)

レスポンスデータ拡張

レスポンス変換

  • バックエンドの準備に関わらず、クライアントの期待に応えるレスポンスを返します
Azure API Management

演習に取り組みましょう!

Azure API Management

Preparing Video For Download...