すべてのプロダクト
Search
ドキュメントセンター

Edge Security Acceleration:API トークンコンプライアンス検証

最終更新日:Oct 31, 2025

JSON Web トークン (JWT) 検証ポリシーを構成し、管理対象 API に適用することで、API トークン検証ルールを作成します。ESA はこれらのトークンに対して受信リクエストを検証し、ビジネス API を保護します。

API トークンルールを構成する

  1. ESA コンソールで、サイト管理 に移動します。サイト 列で、対象のウェブサイトをクリックします。

  2. 左側のナビゲーションウィンドウで、セキュリティ保護 > [API セキュリティ] に移動します。

  3. [API セキュリティ] ページで、[API ルール] タブをクリックし、次に [トークン構成] をクリックします。image

  4. [追加] をクリックしてトークン構成を追加します。image

  5. 必要に応じてトークンパラメーターを構成し、[OK] をクリックします。

    • 名前: トークンのカスタム名 (例: JWT-Demo) を入力します。

    • トークンの場所: リクエスト内のトークンの場所を選択します。[ヘッダー] または [Cookie] を選択し、キーを入力します。

      説明

      異なる場所でトークンをチェックするには、[または] をクリックして論理的な OR 条件を作成できます。同時に最大 4 つのトークンの場所をチェックできます。

    • トークンキー: トークンキーを手動で入力するか、JSON ファイルをアップロードします。キーの要件の詳細については、「トークンの詳細」をご参照ください。

      説明

      複数のキーを構成する場合、ESA は kid フィールドを使用して検証用のキーを選択します。いずれかのキーで検証された場合、リクエストは有効と見なされます。

    image

  6. トークンを構成した後、API ルールを作成します。[API ルール] タブに戻り、[ルールの追加] をクリックします。image

  7. 必要に応じてトークン検証パラメーターを構成します。

    • ルール名: ルール名 (例: rule-jwt-demo) を入力します。

    • API の検証: ドロップダウンリストから、検証する API をホストするホスト名を選択します。ESA はそのホスト名の下にある管理対象 API のリストを自動的に表示します。リストから対象の API を選択します。

    • トークン構成の選択: 検証するトークンを 1 つ以上選択します。複数のトークンを選択する場合は、次のいずれかのオプションを選択します。

      • 少なくとも 1 つを検証: リクエストは、選択されたトークン構成の少なくとも 1 つに一致する必要があります。そうでない場合、リクエストは非準拠としてマークされます。

      • すべてを検証: リクエストは、選択されたすべてのトークン構成に一致する必要があります。そうでない場合、リクエストは非準拠としてマークされます。

        説明

        デフォルトでは、トークンがない場合、リクエストは非準拠としてマークされます。この動作を変更するには、[トークンがない場合] 列のドロップダウンリストから [無視] を選択できます。

    • アクション: トークン検証に失敗したリクエストのアクションを選択します。

      • 監視: 非準拠のリクエストを許可し、ログを記録します。詳細については、「イベント」をご参照ください。

      • ブロック: 非準拠のリクエストをブロックし、ブロックログを記録します。詳細については、「イベント」をご参照ください。

    image

結果の検証

API ルールを作成した後、左側のナビゲーションウィンドウで セキュリティ保護 > イベント分析 を選択します。[イベント] ページで、フィルターを使用して保護ルールを [API ルール] に設定します。下にスクロールして、サンプリングログ セクションで詳細な緩和ログを表示します。

トークンの詳細

トークン検証は現在、JWT でのみ利用可能です。

フィールドの説明

公開鍵は JSON Web Key (JWK) 形式である必要があります。JWK 公開鍵には kid および alg フィールドが含まれている必要があります。フィールドは次のように説明されます。

  • kty: キーのタイプ (例: 楕円曲線の場合は EC)。

  • use: 公開鍵の意図された用途 (例: デジタル署名の場合は sig)。

  • crv: 楕円曲線のタイプ (例: NIST 標準の P-256 曲線の場合は P-256)。

  • kid: カスタムキー識別子 (例: esa)。キー選択を有効にするには、JWK に kid フィールドを含める必要があります。リクエストの JWT クレームにも kid フィールドを含める必要があります。このフィールドは、トークンキーのローテーションに使用されます。

  • x: 楕円曲線公開鍵の x 座標。

  • y: 楕円曲線公開鍵の y 座標。

  • alg: アルゴリズム識別子。現在サポートされているのは ES256 のみです。これは SHA-256 を使用した ECDSA 署名アルゴリズムです。

{
  "kty": "EC",
  "use": "sig",
  "crv": "P-256",
  "kid": "esa",
  "x": "QG3VFVwUX4IatQvBy7sqBvvmticCZ-eX5-nbtGKBOfI",
  "y": "A3PXCshn7XcG7Ivvd2K_DerW4LHAlIVKdqhrUnczTD0",
  "alg": "ES256"
}

よくある質問

JWT とは

JWT は、当事者間で情報を JSON オブジェクトとして安全に送信するためのコンパクトで自己完結したメソッドを定義するオープン標準 (RFC 7519) です。JWT は、サーバーからリソースを取得するためのユーザー ID、ロール、権限などの情報を含む、スタンドアロンの ID 検証トークンとして機能します。特定のビジネスロジックに必要な追加のクレームを含めることができます。JWT は、分散サイトでのログインシナリオに特に役立ちます。

JWT は、ヘッダー、ペイロード、署名の 3 つの部分で構成されます。各部分は Base64 エンコードされ、Header.Payload.Signature の形式の文字列を形成するために結合されます。

  • ヘッダー: トークンのタイプ (JWT) と署名アルゴリズムを宣言します。

  • ペイロード: エンティティ (ユーザーなど) に関するステートメントであるクレームと追加データが含まれます。システムの要件に応じてカスタムフィールドを追加できます。

  • 署名: JWT 送信者の ID を検証し、メッセージが送信中に変更されていないことを確認するために使用されます。

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

JWT を生成するにはどうすればよいですか?

トークンの作成と検証のために、https://mkjwk.org で非公開鍵と公開鍵を生成します。

  1. ブラウザで https://mkjwk.org に移動します。

  2. [EC] タブをクリックし、パラメーターを構成してから [生成] をクリックします。[公開鍵] セクションで、[クリップボードにコピー] をクリックして公開鍵をコピーします。

    • 曲線: P-256 を選択します。

    • キーの使用: Signature を選択します。

    • アルゴリズム: ES256: ECDSA using P-256 and SHA-256 を選択します。

    • キー ID: カスタムキー識別子 (例: esa) を入力します。

    • image