入站鉴权
入站鉴权用于校验外部系统向 Soln 发送 Webhook 或其他 OpenLink 请求时的身份。从 集成 菜单打开 OpenLink,选择一个 OpenLink 后,在详情面板的 入站鉴权 页签中配置。
入站鉴权归属于单个 OpenLink,会在该 OpenLink 的入站 Webhook 流程、查询数据流程和消息推送流程中生效。
- 打开 OpenLink
- 选择目标 OpenLink
- 打开 入站鉴权 页签
- 如果还没有配置,点击 去配置;如果已有配置,点击 编辑
- 选择鉴权模式
- 填写或生成所需凭证
- 点击 保存入站鉴权
当鉴权模式发生变化,或当前还没有密钥时,必须提供新的密钥值。编辑已有配置且不需要更换密钥时,可以留空密钥字段。
鉴权模式
| 鉴权模式 | 必填字段 | 说明 |
|---|---|---|
| 无 | 无 | 不校验 OpenLink 级凭证,并删除已保存的入站鉴权配置;只建议在可信测试环境或已有网关鉴权的情况下使用 |
| 共享令牌 | 请求头名称、令牌值 | 外部系统必须在指定请求头中发送共享令牌 |
| Bearer Token | 请求头名称、令牌值 | 外部系统必须在指定请求头中发送令牌,配置了前缀时需要带上前缀 |
| 签名校验 | App ID、App Secret、签名 Header | 外部系统必须对请求签名,并发送签名相关请求头 |
请求头示例
以下示例只展示入站鉴权需要携带的请求头,请求体统一用空的 JSON 表示。
查询数据流程和消息推送流程使用同样的鉴权,地址分别是 /api/open-link/query/<flowCode> 和 /api/open-link/message-push/<flowCode>。
入站请求先做白名单校验,再做凭证校验。
无
POST /api/open-link/inbound/webhooks/<flowCode> HTTP/1.1
Host: <runtime-origin>
Content-Type: application/json
{}
共享令牌
POST /api/open-link/inbound/webhooks/<flowCode> HTTP/1.1
Host: <runtime-origin>
X-OpenLink-Token: <shared-token>
Content-Type: application/json
{}
请求头名称以共享令牌配置为准。
Bearer Token
POST /api/open-link/inbound/webhooks/<flowCode> HTTP/1.1
Host: <runtime-origin>
Authorization: Bearer <token>
Content-Type: application/json
{}
请求头名称和前缀来自配置,默认是 Authorization 和 Bearer。校验时 Runtime 会先去掉前缀再比对令牌,所以不带前缀直接发送令牌也能通过。
签名校验
POST /api/open-link/inbound/webhooks/<flowCode> HTTP/1.1
Host: <runtime-origin>
X-App-Id: partner-app
X-OpenLink-Timestamp: 2026-09-18T06:30:00.000Z
X-OpenLink-Signature: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
Content-Type: application/json
{}
签名原文是 METHOD\npath\ntimestamp\n原始 body,时间戳需要处于允许的时钟偏移窗口内,所以示例里的时间戳只是格式参考。签名格式和校验细节见下文。
共享令牌字段
| 字段 | 说明 |
|---|---|
| 请求头名称 | Soln 从入站请求中读取的请求头,例如 X-OpenLink-Token |
| 令牌值 | 共享密钥令牌;需要新令牌时使用更新凭证操作生成 |
Bearer Token 字段
| 字段 | 说明 |
|---|---|
| 请求头名称 | 承载令牌的请求头,默认 Authorization |
| 前缀 | 令牌前的可选前缀,默认 Bearer |
| 令牌值 | 密钥令牌;需要新令牌时使用更新凭证操作生成 |
签名校验字段
| 字段 | 说明 |
|---|---|
| App ID | 调用方需要提供的公开应用标识,通过固定的 X-App-Id 请求头发送 |
| App Secret | 用于校验请求签名的密钥;需要新密钥时使用更新凭证操作生成 |
| 签名 Header | 承载签名的请求头 |
| 时间戳 Header | 承载请求时间戳的请求头 |
| 签名算法 | HMAC-SHA256、HMAC-SHA384 或 HMAC-SHA512,默认 HMAC-SHA256 |
入站校验使用配置的签名算法,默认为 HMAC-SHA256。调用方必须使用配置的 App Secret,对以下精确 UTF-8 内容签名:
METHOD\n/path\ntimestamp\n原始 JSON body
Method 必须大写,Path 不包含 Query。配置的时间戳 Header 必须存在,可使用 Unix 秒、Unix 毫秒或 ISO 时间;时间差必须处于允许窗口内,Runtime Web 创建的配置为 300 秒。签名 Header 可使用小写十六进制或 Base64 HMAC。
签名验证成功后,Runtime 会根据规范化签名派生内部防重放键。重复发送同一个已签名请求时返回已有执行,不会再次启动 Workflow 或重复业务写入;修改 X-Idempotency-Key 不能绕过该保护。调用方与 Runtime 主机需要保持时钟同步;新的时间戳代表新的签名请求。