跳到主要内容

出站鉴权

出站鉴权用于配置 Soln 调用外部 API 时使用的凭证。从 集成 菜单打开 OpenLink,选择一个 OpenLink 后,在详情面板的 出站鉴权 页签中配置。

出站鉴权归属于单个 OpenLink,保存的配置会应用到该 OpenLink 下的所有出站调用。

  1. 打开 OpenLink
  2. 选择目标 OpenLink
  3. 打开 出站鉴权 页签
  4. 如果还没有配置,点击 去配置;如果已有配置,点击 编辑
  5. 选择鉴权方式
  6. 填写必填字段
  7. 点击 保存配置

已有密钥配置时,如果不需要替换密钥,编辑时可以留空密钥字段。只有需要更新凭证时,才输入新的密钥值。

生效时机​

出站鉴权在执行时读取配置,所以保存后下一次执行就生效,不需要重新发布流程。

执行场景行为
出站流程Studio 脚本会带上该凭证,脚本里每次 studio.http.request 调用都会用这份凭证签名或携带令牌
触发方式为 轮询 的入站流程Studio 源脚本在向外部系统读取数据时带上该凭证
其他执行,例如 Webhook 入站、查询数据、消息推送流程不会添加出站凭证,因为这些执行不会走到 Studio HTTP 运行时
鉴权页签上的 验证连接用同一套规则验证已保存的配置

使用哪份配置:

  1. 流程绑定上指定的鉴权配置(如果绑定了)
  2. 否则使用该 OpenLink 的默认鉴权配置,且必须是启用状态

凭证会在脚本自身请求头之后应用,所以同名请求头会被覆盖。没有启用中的默认配置时,出站调用不带凭证;如果流程绑定的是已停用的配置或属于其他 OpenLink 的配置,执行会直接失败。

鉴权方式​

鉴权方式必填字段说明
无无外部系统不需要 OpenLink 级鉴权时使用
Basic Auth用户名、密码发送用户名和密码凭证
Bearer Token请求头名称、访问令牌请求头通常使用 Authorization,前缀通常是 Bearer
动态 JWT Bearer算法、Secret、Issuer、Audience、Subject、Token 有效期、请求头名称每次出站 HTTP 请求前即时生成一个签名 JWT;算法可选 HS256、HS384、HS512
API Key挂载位置、API Key 名称、API Key 值API Key 可以放在 Header 或 Query 中
HMAC 签名App ID、App Secret、签名 Header、签名算法使用 HMAC-SHA256、HMAC-SHA384 或 HMAC-SHA512 签名;时间戳、Nonce 和签名内容规则为可选
OAuth2 Client CredentialsClient ID、Client Secret、Token 地址用 grant_type=client_credentials 和 HTTP Basic 客户端认证请求访问令牌;Scope 和 Audience 是可选令牌请求参数
自定义 Header / Query凭证 JSON、密钥 JSON自行映射 Header 或 Query,并从密钥 JSON 引用密钥

每个 OpenLink 只保留一份默认出站鉴权配置。保存后凭证会应用到该 OpenLink 下的所有出站调用;选择 无 时保留配置,但不会添加任何鉴权请求头。

请求头示例​

以下示例只展示 OpenLink 出站鉴权会添加的请求头,请求体统一用空的 JSON 表示。

无​

POST /api/orders HTTP/1.1
Host: api.partner.example
Content-Type: application/json

{}

Basic Auth​

POST /api/orders HTTP/1.1
Host: api.partner.example
Authorization: Basic ZGVtby11c2VyOmRlbW8tcGFzc3dvcmQ=
Content-Type: application/json

{}

请求头的值由 Basic 加上 用户名:密码 的 Base64 组成。

Bearer Token​

POST /api/orders HTTP/1.1
Host: api.partner.example
Authorization: Bearer <token>
Content-Type: application/json

{}

请求头名称和前缀来自配置,默认是 Authorization 和 Bearer。

动态 JWT Bearer​

POST /api/orders HTTP/1.1
Host: api.partner.example
Authorization: Bearer <本次请求实时签发的 JWT>
Content-Type: application/json

{}

Runtime 会在请求前即时签发 Token,iss、aud、sub、iat、exp 和 jti 始终存在。

API Key​

POST /api/orders HTTP/1.1
Host: api.partner.example
X-API-Key: <api-key>
Content-Type: application/json

{}
POST /api/orders?api_key=<api-key> HTTP/1.1
Host: api.partner.example
Content-Type: application/json

{}

请求头名称或参数名称来自配置:Header 默认 X-API-Key,Query 默认 api_key。配置了前缀时,前缀会加在 Key 值前面。API Key 放在 Query 时,Runtime 在执行输出里会把它脱敏为 [REDACTED]。

HMAC 签名​

POST /api/orders HTTP/1.1
Host: api.partner.example
X-App-Id: partner-app
X-OpenLink-Timestamp: 2026-09-18T06:30:00.000Z
X-OpenLink-Signature: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
X-OpenLink-Nonce: 3f1c2f0e-6a1d-4a1f-9a53-1f2b3c4d5e6f
Content-Type: application/json

{}

签名是签名原文的小写十六进制结果,签名原文按配置的规则拼接,默认是 method + path + timestamp + body。只有配置了 Nonce Header 时才会额外发送 Nonce 请求头,新配置在控制台里默认填的是 X-OpenLink-Nonce。只有签名内容规则里包含 nonce 时,Nonce 才参与签名。

OAuth2 Client Credentials​

POST /api/orders HTTP/1.1
Host: api.partner.example
Authorization: Bearer <从 Token 地址获取的访问令牌>
Content-Type: application/json

{}

Token 类型取自 Token 地址的响应,默认为 Bearer。

自定义 Header / Query​

POST /api/orders?tenant=demo HTTP/1.1
Host: api.partner.example
X-Client-Id: demo-client
X-Client-Secret: <secret>
Content-Type: application/json

{}

只会带上凭证 JSON 和密钥 JSON 中定义的条目。

Bearer Token 字段​

字段说明
请求头名称承载令牌的请求头
前缀可选的令牌前缀,例如 Bearer
访问令牌密钥令牌值

动态 JWT Bearer 字段​

动态 JWT Bearer 不会请求 Token 地址。Runtime 会在每次 Studio 出站 HTTP 请求前即时签发 Token,并注入配置的请求头;脚本不需要自己生成 JWT,如果脚本设置了同名请求头,会被 Runtime 覆盖。

字段必填说明
算法是HS256、HS384 或 HS512
Secret新建时是共享签名密钥,最小长度随算法变化:HS256 为 32 字节、HS384 为 48 字节、HS512 为 64 字节;编辑时留空会保留当前 Secret
Issuer是写入 iss Claim,必须与外部 API 接受的 Issuer 一致
Audience是写入 aud Claim,必须与目标 API 的 Audience 一致
Subject是写入 sub Claim 的集成操作员标识
Name否可选的 name Claim
Scope否可选的 scope Claim
Token 有效期是30 到 3,600 秒之间的整数
Header 名称是承载签名 Token 的请求头,默认为 Authorization
前缀否添加在 Token 前的前缀,默认为 Bearer

每个 Token 都包含 iss、aud、sub、iat、exp 和唯一的 jti;配置后还会包含 name 和 scope。Token 不会缓存。Secret 只保存在服务端:接口只返回密钥是否已配置和密钥字段名,不返回密钥值。

API Key 字段​

字段说明
挂载位置选择 API Key 放在 Header 还是 Query 中
API Key 名称Header 名称或 Query 参数名称
API Key 值密钥值
前缀添加在 Key 值前面的可选前缀

HMAC 签名字段​

字段说明
App ID公开的应用标识
App Secret用于签名的密钥
签名 Header承载签名结果的请求头
签名算法HMAC-SHA256、HMAC-SHA384 或 HMAC-SHA512
时间戳 Header承载请求时间戳的请求头,默认 X-OpenLink-Timestamp
Nonce Header可选,用于防重放
签名内容规则说明签名内容如何组成,例如 method、path、timestamp 和 body

OAuth2 Client Credentials 字段​

字段说明
Client ID在外部系统注册的客户端标识
Client Secret该客户端的密钥;编辑时留空会保留当前 Secret
Token 地址签发访问令牌的 Token 端点
Scope可选,随令牌请求一起发送的授权范围
Audience可选,随令牌请求一起发送的受众

自定义 Header / Query 字段​

字段说明
凭证 JSON用 headers、query、secretHeaders 或 secretQuery 描述出站映射,至少需要配置其中一项
密钥 JSON提供凭证 JSON 引用的密钥值;被引用的每个密钥都必须在该对象中存在

验证出站连接​

在出站鉴权页签使用 验证连接,可以在真正依赖凭证之前确认它能用。

  1. 打开该 OpenLink 的 出站鉴权 页签
  2. 点击 验证连接
  3. 填写验证请求:地址、请求方法、可选 Body 和 Content-Type
  4. 点击 开始验证,查看结果
验证字段说明
验证请求地址有效且不含内嵌账号密码的 HTTPS 地址
请求方法GET、POST、PUT、PATCH、DELETE 或 HEAD,默认 GET
请求 Body可选;GET 和 HEAD 请求不能包含 Body
Content-Type探测请求发送的内容类型

摘要卡片会展示验证状态和最后验证时间:

状态含义
未验证该配置还没有验证过
有效使用当前凭证探测成功
无效外部系统拒绝了当前凭证
已过期鉴权配置本身已过期,需要重新处理
验证异常探测因其他原因失败,例如端点不可达、被限流或返回其他错误状态

验证结果还会给出 HTTP 状态码和耗时(毫秒)。