JSON Web 令牌 (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 配置文件 ID 匹配。

    ssl_profile_id - 要匹配的值

    区分大小写 设置区分大小写的标记进行 HTTP 标头值比较。如果为 true,则在比较 HTTP 正文值时,需要区分大小写。
  4. 从下拉列表中,选择匹配类型:开头为、结尾为、等于、包含、匹配正则表达式。
  5. 如果需要,请输入 URI。
  6. 从下拉列表中,选择一个匹配策略
    匹配策略 描述
    任意 对于此规则,只要主机和路径中的任一项匹配,即可视为匹配项。
    全部

    对于此规则,只有主机和路径全都匹配,才可视为匹配项。

  7. 从下拉菜单中选择一个操作
    操作 描述
    JWT 身份验证
    JSON Web 令牌 (JWT) 是一种开放式标准,它定义了一种紧凑的自包含方法,用于在各方之间安全地将信息作为 JSON 对象进行传输。可以验证和信任此信息,因为它经过了数字签名。
    • 领域 - 受保护区域的描述。如果未指定任何领域,客户端通常会显示一个格式化的主机名。当客户端请求被拒绝且 http 状态码显示为 401 时,将返回已配置的领域。响应为:“WWW-Authentication: Bearer realm=<realm>”。
    • 令牌 - 此参数是可选参数。负载均衡器会逐一搜索为 JWT 消息指定的每个令牌,直到将其找到为止。如果未找到令牌,或者未配置此文本框,负载均衡器会默认在 http 请求“Authorization: Bearer <token>”中搜索持有者标头
    • 密钥类型 - 对称密钥或非对称公钥(证书 ID)
    • 保留 JWT - 这是用于保留 JWT 并将其传递到后端服务器的标记。如果禁用此标记,则会移除后端服务器的 JWT 密钥。
    连接断开

    如果启用了“反转”,则在配置“连接断开”后,将丢弃与指定的匹配条件不匹配的所有请求。将允许与指定的匹配条件相匹配的请求。

    变量分配

    允许用户在 HTTP 访问阶段为变量分配值,这样可以将结果用作其他负载均衡器规则阶段中的条件。

  8. 依次单击保存应用