JSON Web トークン (JWT) 検証ポリシーを構成し、管理対象 API に適用することで、API トークン検証ルールを作成します。ESA はこれらのトークンに対して受信リクエストを検証し、ビジネス API を保護します。
API トークンルールを構成する
ESA コンソールで、サイト管理 に移動します。サイト 列で、対象のウェブサイトをクリックします。
左側のナビゲーションウィンドウで、 に移動します。
[API セキュリティ] ページで、[API ルール] タブをクリックし、次に [トークン構成] をクリックします。

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

必要に応じてトークンパラメーターを構成し、[OK] をクリックします。
名前: トークンのカスタム名 (例:
JWT-Demo) を入力します。トークンの場所: リクエスト内のトークンの場所を選択します。[ヘッダー] または [Cookie] を選択し、キーを入力します。
説明異なる場所でトークンをチェックするには、[または] をクリックして論理的な
OR条件を作成できます。同時に最大 4 つのトークンの場所をチェックできます。トークンキー: トークンキーを手動で入力するか、JSON ファイルをアップロードします。キーの要件の詳細については、「トークンの詳細」をご参照ください。
説明複数のキーを構成する場合、ESA は
kidフィールドを使用して検証用のキーを選択します。いずれかのキーで検証された場合、リクエストは有効と見なされます。

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

必要に応じてトークン検証パラメーターを構成します。
ルール名: ルール名 (例:
rule-jwt-demo) を入力します。API の検証: ドロップダウンリストから、検証する API をホストするホスト名を選択します。ESA はそのホスト名の下にある管理対象 API のリストを自動的に表示します。リストから対象の API を選択します。
トークン構成の選択: 検証するトークンを 1 つ以上選択します。複数のトークンを選択する場合は、次のいずれかのオプションを選択します。
少なくとも 1 つを検証: リクエストは、選択されたトークン構成の少なくとも 1 つに一致する必要があります。そうでない場合、リクエストは非準拠としてマークされます。
すべてを検証: リクエストは、選択されたすべてのトークン構成に一致する必要があります。そうでない場合、リクエストは非準拠としてマークされます。
説明デフォルトでは、トークンがない場合、リクエストは非準拠としてマークされます。この動作を変更するには、[トークンがない場合] 列のドロップダウンリストから [無視] を選択できます。
アクション: トークン検証に失敗したリクエストのアクションを選択します。

結果の検証
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"
}