APIポリシーの実装
Azure API Management
Fiodar Sazanavets
Senior Software Engineer at Microsoft
APIポリシーの概要
ドアマンのように:入場者を確認します
速度制限標識
のように:トラフィックを制御します
問題のあるアクセスをブロックしてAPIを保護します
リクエストをスロットリングしてシステム過負荷を防ぎます
APIゲートウェイの入出力はすべてポリシーで制御されます
API Managementポリシーの概要
ポリシーはシンプルなXMLで記述された強力なルールの集合です
リクエスト/レスポンスパイプライン
として捉えることができます
異なるステージにルールを挿入してトラフィックを制御します
バックエンドコードを変更する必要はありません
例:後方互換性
ポリシースコープ
ポリシーはグローバルに組織全体へ適用できます
全APIを制御するルールです
個別のAPIに適用することも可能です
特定の製品を管理できます
個別のエンドポイントにも適用できます
きめ細かい制御に使用します
インバウンドポリシー
リクエスト到着時、APIMはまず
インバウンドポリシー
を評価します
例:ペイロードデータを拡張し、旧アプリを新APIに対応させる
インバウンドポリシーは悪意のあるアクセスを防御します
不正なリクエストや不足データを検出します
不正データがサービスに到達する前に遮断します
セキュリティとスロットリング
過剰なクライアントを抑制し、公平な利用とバックエンド保護を実現します
インバウンドポリシーは
セキュリティ
も担います
代表的なポリシー:JWT(JSON Web Token)の検証
JWTはクライアントが送信するデジタルIDカードと考えられます
validate-jwtポリシーは正当性・有効期限・信頼できる発行者(例:Entra ID)を確認します
より強力な制御:レート制限とクォータポリシー
アウトバウンドポリシー
バックエンド処理後、
アウトバウンドポリシー
がレスポンスを調整して返します
レストランの注文に例えると:リクエスト→厨房(バックエンド)→盛り付け(アウトバウンドポリシー)
アウトバウンドポリシーでできること:
不要な部分を削除(例:機密ヘッダー)
指示を追加(例:キャッシュディレクティブ)
形式を変換(例:XMLをJSONに変換)
バックエンドの準備に関わらず、クライアントの期待に応えるレスポンスを返します
演習に取り組みましょう!
Azure API Management
Preparing Video For Download...