JSON Web トークン (JWT) は、2 つの当事者間で情報を安全に転送するために使用される規格で、検証済みまたは暗号化された形式が使用されることもあります。

HTTP アクセス フェーズでは、クライアントから JWT を検証したり、バックエンド サーバに対する JWT を削除したりするアクションを定義できます。

ロード バランサのルールは、一致のタイプとして正規表現をサポートします。高度な使用方法ではいくつかの制限がありますが、PCRE スタイルの正規表現パターンがサポートされています。一致条件に正規表現を使用する場合、名前付きキャプチャ グループがサポートされます。ロード バランサ ルールの正規表現 を参照してください。

前提条件

レイヤー 7 HTTP 仮想サーバが使用できることを確認します。レイヤー 7 HTTP 仮想サーバの追加 を参照してください。

手順

  1. レイヤー 7 HTTP 仮想サーバを開きます。
  2. [ロード バランサ ルール] セクションの [HTTP アクセス フェーズ] の横で、[設定] > [ルールの追加] の順にクリックし、HTTP 要求の書き換えフェーズのロード バランサ ルールを設定します。
  3. ドロップダウン メニューから一致条件を選択します。一致条件は、ロード バランサを通過するアプリケーション トラフィックを照合する際に使用されます。1 つのロード バランサ ルールに複数の一致条件を指定できます。それぞれの一致条件で、アプリケーション トラフィックの基準が定義されます。
    サポートされている一致条件 説明
    HTTP 要求メソッド HTTP 要求メソッドに一致します。

    http_request.method:一致する値

    HTTP 要求 URI クエリの引数を除いて、HTTP 要求 URI と一致します。

    http_request.uri:一致する値

    HTTP 要求の URI 引数 HTTP 要求の URI クエリ引数と一致します。

    http_request.uri_arguments:一致する値

    HTTP 要求バージョン HTTP 要求のバージョンと一致します。

    http_request.version:一致する値

    HTTP 要求ヘッダー 任意の HTTP 要求ヘッダーと一致します。

    http_request.header_name:一致するヘッダー名

    http_request.header_value:一致する値

    HTTP 要求の Cookie 任意の HTTP 要求 cookie と一致します。

    http_request.cookie_value:一致する値

    HTTP 要求の本文 HTTP 要求の本文の内容に一致します。

    http_request.body_value:一致する値

    TCP ヘッダー ポート TCP の送信元ポートまたは宛先ポートと一致します。

    tcp_header.source_port:一致する送信元ポート

    tcp_header.destination_port:一致する宛先ポート
    IP ヘッダー ソース HTTP メッセージの IP ヘッダー テキスト ボックスと一致します。送信元のタイプは、単一の IP アドレス、IP アドレスの範囲またはグループのいずれかにする必要があります。グループの追加 を参照してください。
    • IP ヘッダー ソースが選択され、IP アドレスのソース タイプが指定されている場合、HTTP メッセージの送信元 IP アドレスは、グループで設定されている IP アドレスと一致する必要があります。IPv4 と IPv6 の両方のアドレスがサポートされています。
    • IP ヘッダー ソースがグループ ソースタイプで選択されている場合は、ドロップダウン メニューからグループを選択します。

    ip_header.source_address:一致する送信元の IP アドレス

    ip_header.destination_address:一致する宛先の IP アドレス
    変数 変数を作成し、この変数に値を割り当てます。
    クライアント SSL クライアント SSL プロファイル ID と一致します。

    ssl_profile_id:一致する値

    大文字と小文字を区別 HTTP ヘッダー値を比較する場合、大文字と小文字が区別されるフラグを設定します。true の場合、HTTP 本文の値を比較するときに大文字と小文字が区別されます。
  4. ドロップダウン リストから [一致タイプ] を選択します。[次で始まる]、[次で終わる]、[次と等しい]、[次を含む]、[正規表現に一致] を選択できます。
  5. 必要に応じて URI を入力します。
  6. ドロップダウン リストから、[戦略の一致] を選択します。
    戦略の一致 説明
    任意 ホストまたはパスのいずれかがこのルールと一致すると、一致とみなされます。
    すべて

    ホストとパスの両方がこのルールと一致すると、一致とみなされます。

  7. ドロップダウン メニューから [アクション] を選択します。
    アクション 説明
    JWT 認証
    JSON Web トークン (JWT) は、JSON オブジェクトとして 2 つの当事者間で情報を安全に転送するためのオープン規格で、コンパクトで自己完結型の方法を定義しています。この情報はデジタル署名されているため、検証と信頼を行うことができます。
    • レルム - 保護対象領域の説明。レルムが指定されていない場合、フォーマット済みのホスト名がクライアントに表示されることがあります。設定されたレルムは、クライアント要求が 401 http で拒否された場合に返されます。応答は次のとおりです。WWW-Authentication: Bearer realm=<realm>
    • トークン - このパラメータはオプションです。ロード バランサは、指定されたすべてのトークンを JWT メッセージに対して検索します。この処理は 1 つずつ、トークンが見つかるまで実行されます。見つからない場合、またはこのテキスト ボックスが設定されていない場合は、ロード バランサは HTTP 要求 "Authorization: Bearer <token>" のベアラー ヘッダーをデフォルトで検索します。
    • キー タイプ - 対称キーまたは非対称パブリック キー(証明書 ID)
    • JWT の保持:JWT を保存してバックエンド サーバに渡すためのフラグです。無効にすると、バックエンド サーバの JWT キーが削除されます。
    接続ドロップ

    否定が有効になっているときに、接続ドロップを設定すると、指定した一致条件に一致しないすべての要求がドロップされます。指定した一致条件に一致する要求は許可されます。

    変数の割り当て

    これにより、HTTP アクセス フェーズの変数に値を割り当て、他のロード バランサ ルール フェーズの条件として結果を使用できます。

  8. [保存][適用] の順にクリックします。