Web Tokens
关于 Web Token
JSON Web Token(JWT)是 RFC 7519 中定义的行业标准,是一种紧凑且自包含的方式,用于在两方之间安全地传输信息的访问令牌。当用户使用凭证登录认证服务器时,服务器将返回一个 Web Token。当同一用户向应用程序发起 API 调用时,应用程序使用该 Web Token 对试图访问受保护资源的用户进行身份验证。
创建 Web Token
将 Site24x7 注册到您的认证服务器,即可使用 Web Token 监控受保护的网站和端点 API。请按照以下步骤设置监控:
- 登录 Site24x7。
- 导航至管理 > 配置文件 > Web Tokens。
- 点击添加 Web Token。
- 系统将弹出添加 Web Token 表单。
- 填写以下信息:
- Web Token 名称:提供用于验证 API 端点的 Web Token 名称。
- Web Token 端点 URL:指定认证服务器端点的 URL。
- 刷新位置:从下拉菜单中选择刷新令牌的位置。系统将根据所选位置收集配置数据。
- 刷新间隔:Web Token 将在指定时间间隔后通过查询端点 URL 进行刷新。
- 在 HTTP 配置下填写以下信息:
- HTTP 方法:指定连接网页时使用的方法——POST 或 GET。使用单选按钮配置表单提交方法,并为 POST HTTP 方法选择适当的请求体类型。
- HTTP 请求头:如需自定义默认 HTTP 请求头信息,可在此处添加额外的请求头名称和值。
- 凭据:为需要 Basic/NTLM 身份验证的 URL 指定用户名和密码。

- 认证请求方法:选择提交 Web Token 以验证 API 端点的方式。选择并定义传递访问令牌的方法。您可以在参数字段中使用自定义名称。
- 请求头: 访问令牌通过请求头发送。使用以下名称-值语法发送 Bearer Token:
"Authorization: Bearer ${access.token}" - URI 查询参数: 您可以使用以下语法在 URI 查询参数中发送访问令牌:
"access_token=${access.token}"
- 请求头: 访问令牌通过请求头发送。使用以下名称-值语法发送 Bearer Token:
-
在令牌提取下填写以下信息:
响应中的令牌值将被提取,并可进一步用于为其他需要在请求 URI 中进行身份验证的监视器类型自定义请求参数、请求头等。- 响应格式:根据所选格式(文本、XML 或 JSON),以正则表达式、JSONPath 表达式或 XPath 表达式从 Web Token 中提取值。
- Web Token 刷新失败告警:选择用户告警组,以便在 Web Token 连续三次刷新失败时接收通知。
- Web Token 响应示例:
{
"access_token": "XXXXXXX","token_type": "bearer","expires_in": 3599,"refresh_token": "YYYYYYY",".issued": "Mon, 20 Jan 2020 09:39:44 GMT",".expires": "Mon, 20 Jan 2020 10:39:44 GMT"
}'$.access_token' 是从响应中获取令牌的 JSON 表达式。
- 输入所有 Web Token 配置信息后,点击检查配置按钮测试 Web Token。测试完成后,结果将显示相关的 Web Token、响应头以及 Web Token 的响应内容。
注意- 配置正则表达式提取器以从响应中定位令牌的键。
- 根据响应中收到的令牌设置键。
- 失败的请求和响应将以红色高亮显示,并附有"Authentication failed(身份验证失败)"的消息。
- 点击复制
图标即可轻松复制响应内容。

- 点击授权按钮以获取端点 URL 的 Web Token。该令牌将根据刷新间隔中设置的时间进行刷新。
通过请求头启用 Cookie
如需通过请求头发送 Cookie,需要在请求中指定自定义请求头。例如,将请求头名称设置为 setBrowserCookie,即可包含多个 JSON 格式的令牌,这些令牌将被视为 Cookie。
请按照创建 Web Token 的步骤进行操作,并按如下方式修改认证请求方法和令牌提取:
- 认证请求方法:请求头
- 请求头:您可以添加多个访问令牌。使用 setBrowserCookie 作为请求头名称时,这些令牌将作为 Cookie 发送。Cookie 在数据采集后端进行管理。
Cookie 令牌应使用以下名称-值语法发送:
cookie_name1${access.token}cookie_name2${access.token}globalparameter{global.token}
请确保令牌在 JSONPath 表达式字段中按从上到下的顺序排列。

- 请求头:您可以添加多个访问令牌。使用 setBrowserCookie 作为请求头名称时,这些令牌将作为 Cookie 发送。Cookie 在数据采集后端进行管理。
- 令牌提取:从响应中提取的令牌值可在自定义请求头中重复使用,尤其适用于需要通过请求 URI 进行身份验证的其他类型监视器。
- JSON Path 表达式:JSONPath 表达式字段中的值应作为访问令牌添加到请求头中。请确保令牌按 JSONPath 中指定的从上到下的顺序依次添加。
请参考以下示例:
Authentication request method : Request Headers
Header Name: setBrowserCookie
Header value: cookie_name1${access.token}cookie_name2${access.token}cookie_name3${access.token}globalparameter{global.token}
Token Extraction:
Response Format: JSON
1)$.value1
2)$.value2
3)$.value3
4)$.12.00 Output:
The final JSON Output, that will be set as cookies in the WebPage Speed (Browser) Monitor.
{
"cookie_name1":"$.value1",
"cookie_name2":"$.value2",
"cookie_name3":"$.value3"
"current_time":"$.12.00"
}
Sample:
setBrowserCookie: sessionId=abc123; date=2024-09-24; path=/; domain=.example.com注意以 JSON 格式将多个令牌作为 Cookie 添加,仅在使用 setBrowserCookie 作为请求头名称时,适用于网页速度(浏览器)监视器。
- JSON Path 表达式:JSONPath 表达式字段中的值应作为访问令牌添加到请求头中。请确保令牌按 JSONPath 中指定的从上到下的顺序依次添加。
