如何让Business Central Webhook通知启用Basic Auth身份验证?
Business Central Webhook 安全验证方案
一、BC365支持发送带Basic Auth的Webhook通知吗?
可以,但不能直接在notificationUrl里嵌入用户名和密码——BC处理Webhook注册时会自动剥离URL中的凭证信息,所以你之前的写法不会生效。
正确的配置方式是注册Webhook时,额外添加authorization参数,将用户名:密码做Base64编码后传入。示例代码如下:
{ "notificationUrl": "https://your-domain.com/items", "resource": "/api/v2.0/companies(xyz)/items", "clientState": "myState", "authorization": "Basic dXNlcjpwd2Q=" // 这里是user:pwd的Base64编码结果 }
二、其他避免端点暴露的安全措施
除了Basic Auth,还可以通过以下方式强化Webhook端点的安全性:
- 校验ClientState:注册Webhook时设置的
clientState值,会随BC发送的每一条通知附带。你的接收API要检查请求中的clientState是否和注册时一致,不一致则直接拒绝请求。 - IP白名单:将Business Central的官方出口IP地址添加到API服务器的防火墙白名单中,只允许这些IP的请求访问端点。
- 请求签名验证:BC支持在Webhook通知中添加
MicrosoftBusinessCentral-Signature签名头,你可以用注册Webhook时的密钥对签名进行验证,确保请求确实来自BC。 - 强制HTTPS:必须保证接收端点使用HTTPS协议,避免凭证或数据在传输过程中被窃取。
内容的提问来源于stack exchange,提问作者maco
相关产品推荐
相关产品推荐

