Webhook 将数据传送到其他应用程序,这由使用 HTTP POST 的特定警示触发。每次发生警示时,源将会向为 Webhook 配置的目标应用程序发送 HTTP 请求。SD-WAN Orchestrator 支持 Webhook,在发生事件时,它自动通过 HTTP POST 向目标应用程序发送消息。您可以在企业门户中设置目标 URL,并自动执行操作以响应 SD-WAN Orchestrator 触发的警示。Webhook 接收方必须支持 HTTPS 并具有有效的证书,以确保潜在敏感的警示负载的保密性。这也会防止对负载进行篡改。

警示配置 (Alert Configuration) 窗口的 Webhook (Webhooks) 页面中,您可以配置以下详细信息:
选项 描述
URL 输入有效的 HTTPS URL。这将用作 Webhook 的目标应用程序。
代码 (Code)

为每个 Webhook 接收方输入预期的 HTTP 响应状态代码。默认情况下,SD-WAN Orchestrator 要求 Webhook 接收方提供状态代码 HTTP 200 以响应 HTTP POST 请求。

如果 SD-WAN Orchestrator 从接收方服务器或代理服务器收到意外的状态代码,则认为警示传送失败并生成一个 ALERT_DELIVERY_FAILED 客户事件。该事件有助于确定 Webhook 接收方服务器何时无法正常工作。

密钥 (Secret)

为每个配置的 Webhook 接收方指定一个密钥令牌,该令牌用于计算发送到相应接收方的每个 Webhook 请求的 HMAC。HMAC 以及版本参数嵌入在 X-Webhook-Signature HTTP 标头中,该参数指定签名算法和时间戳。

X-Webhook-Signature: v=<signature-version>&t=<timestamp>&s=<hmac> 
接收方按以下方式解释这些组件:
  • v:用于生成签名的算法的版本。唯一支持的值为 1
  • t:与发出请求的时间对应的毫秒精度纪元时间戳。
  • s:由 SD-WAN Orchestrator 计算的 HMAC。HMAC 的计算方法如下所示:HMAC-SHA256(request-body + '.' + timestamp, secret)

用于计算 HMAC 的消息的组成方式是,将请求正文、单个句点以及签名标头中显示的时间戳参数值串联在一起。用于生成代码的特定 HMAC 算法为 HMAC-SHA256。

在收到 Webhook 请求后,侦听服务器可以根据相同的算法计算自己的 HMAC-SHA256 签名,并将新计算的签名与 SD-WAN Orchestrator 生成的签名进行比较以验证请求的真实性。

JSON 负载模板 (JSON Payload Template)

这是必填字段。SD-WAN Orchestrator 通过出站 HTTP POST 请求正文中包含的 JSON 负载将警示通知发送到每个 Webhook 接收方。SD-WAN Orchestrator 动态地生成负载内容,因为通知是通过执行变量插值发送的。用户配置的负载模板中支持的占位符变量将替换为警示特定的值。

验证 单击此选项可验证输入的详细信息。
单击 JSON 负载模板 (JSON Payload Template) 选项下的 配置负载模板 (Configure Payload Template) 链接可配置以下内容:
选项 描述
警示时间 输入必须触发警示的日期和时间。
警示类型 从下拉菜单中选择警示类型。默认情况下,它显示为不适用 (N/A)
客户逻辑 ID 输入必须接收通知的客户的逻辑 ID。
客户 (Customer) 输入必须接收通知的客户的名称。
设备逻辑 ID 输入必须将警示应用到的 Edge 的逻辑 ID。
设备描述 输入描述必须应用警示的 Edge 的简短消息。
设备序列号 输入必须应用警示的 Edge 的序列号。
设备名称 输入必须应用警示的 Edge 的名称。
上次联系时间 (Last Contact) 输入受影响的 Edge 最近与 SD-WAN Orchestrator 进行通信的日期和时间。这仅适用于 Edge 警示。
VCO 输入必须从中发送通知的 SD-WAN Orchestrator 的主机名或公用 IP。
消息 (Message) 输入描述必须触发警示的事件的简短消息。
受影响的实体 输入必须应用警示的实体(Edge 或链接或 VNF)的名称。

下面显示了一个示例 JSON 负载模板:

{
   "alertTime": "alertTime",
   "alertType": "alertType",      
   "customer": "customer",
   "customerLogicalId": "customerLogicalId",
   "entityAffected": "entityAffected",
   "deviceLogicalId": "deviceLogicalId",
   "lastContact": "lastContact",
   "message": "message",
   "vco": "vco",
   "deviceName": "deviceName",
   "deviceDescription": "deviceDescription",
   "deviceSerialNumber": "deviceSerialNumber"
}

单击保存 (Save),然后在 Webhook (Webhooks) 页面上单击保存更改 (Save Changes) 以保存 Webhook 配置。

每次触发警示时,将向目标 URL 发送一条警示消息以及相关的信息。