JSON Web Token (JWT) 是一種標準化、選用的驗證和/或加密格式,用於保護在兩方之間傳輸的資訊。

在 HTTP 存取階段中,使用者可以定義用來驗證來自用戶端 JWT 的動作,並將 JWT 傳遞至後端伺服器或將其移除。

對於比對類型,負載平衡器規則支援 REGEX。支援 PCRE 樣式 REGEX 模式,但對進階使用案例存在一些限制。在比對條件中使用 REGEX 時,支援具名擷取群組。請參閱負載平衡器規則中的規則運算式

必要條件

確認第 7 層 HTTP 虛擬伺服器可供使用。請參閱新增第 7 層 HTTP 虛擬伺服器

程序

  1. 開啟第 7 層 HTTP 虛擬伺服器。
  2. 在 [負載平衡器規則] 區段中,於 [HTTP 存取階段] 旁,按一下設定 > 新增規則,以針對 HTTP 請求重寫階段設定負載平衡器規則。
  3. 從下拉式功能表中,選取相符條件。相符條件會用於比對透過負載平衡器傳遞的應用程式流量。可在一個負載平衡器規則中指定多個相符條件。每個相符條件均定義應用程式流量的準則。
    支援的比對條件 說明
    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_header.destination_address - 要比對的目的地位址
    變數 建立一個變數並為該變數指派值。
    用戶端 SSL 比對用戶端 SSL 設定檔識別碼。

    ssl_profile_id - 要比對的值

    區分大小寫 設定區分大小寫的旗標以用於 HTTP 標頭值比較。如果為 true,則比較 HTTP 本文值時大小寫很重要。
  4. 從下拉式清單中,選取相符類型:開頭為、結尾為、等於、包含、符合 Regex。
  5. 如有需要,請輸入 URI。
  6. 從下拉式清單中,選取符合策略
    符合策略 說明
    任何 若主機或路徑任一符合,即可將此規則視為相符。
    全部

    主機和路徑均必須符合,才將此規則視為相符。

  7. 從下拉式功能表,選取動作
    動作 說明
    JWT 驗證
    JSON Web Token (JWT) 是開放式標準,其定義一種精簡且獨立的方式,用來在各方之間以 JSON 物件形式安全地傳輸資訊。因為此資訊經過數位簽署,因此可驗證且受信任。
    • 領域 - 受保護區域的說明。如果未指定領域,用戶端通常會顯示格式化的主機名稱。當用戶端請求遭拒絕,而出現 401 HTTP 狀態時,會傳回已設定的領域。回應為:「WWW-Authentication: Bearer realm=<realm>」。
    • Token - 此參數為選用。負載平衡器會逐一搜尋每個指定的 Token 是否有 JWT 訊息,直到找到為止。如果找不到,或如果未設定此文字方塊,則負載平衡器依預設會在 HTTP 請求「Authorization: Bearer <token>」中搜尋 Bearer 標頭
    • 金鑰類型 - 對稱金鑰或非對稱公開金鑰 (certificate-id)
    • 保留 JWT - 此旗標用來保留 JWT 並將其傳遞給後端伺服器。如果停用,則會移除後端伺服器的 JWT 金鑰。
    連線捨棄

    如果啟用了否定,則在設定 [連線捨棄] 時,會捨棄不符合指定相符條件的所有請求。允許符合指定相符條件的請求。

    變數指派

    允許使用者透過以下方式,將值指派給 HTTP 存取階段中的變數:可將結果用作為其他負載平衡器規則階段中的條件。

  8. 按一下儲存套用