如何在Visual Studio Code外下载Business Central应用的Symbols
问题根因
Business Central SaaS 的 dev packages 下载接口已全面停用基本身份验证(Basic Auth),仅支持OAuth 2.0 Bearer 令牌授权。你尝试使用的账号密码、Web Service Access Key 均属于基本身份验证凭证,不符合当前接口的认证要求,因此返回401。VS Code的AL扩展内部是通过标准OAuth流程获取授权令牌后发起下载请求,所以可以正常使用。
修复方案
你需要按以下流程获取合法授权后再发起下载请求:
- 首先在你的Azure AD租户中注册专用应用注册,授予
Dynamics 365 Business CentralAPI的应用程序权限app_access,并完成管理员同意。 - 调用Azure AD令牌接口获取访问凭证,请求示例如下:
POST https://login.microsoftonline.com/你的租户ID/oauth2/v2.0/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials &client_id=你注册的应用客户端ID &client_secret=你生成的应用客户端密钥 &scope=https://api.businesscentral.dynamics.com/.default - 拿到返回的
access_token后,在下载符号的请求头中添加授权字段即可正常请求:GET https://api.businesscentral.dynamics.com/v2.0/你的环境名/dev/packages?publisher=Microsoft&appName=Application&versionText=对应版本号 Authorization: Bearer 你获取到的access_token
注意事项
- 确保请求URL中的环境名、版本号和你实际使用的沙箱环境配置完全匹配
- 若在GitHub工作流中使用,需将客户端ID、客户端密钥、租户ID等敏感信息存入仓库的Secrets管理,禁止明文写在工作流配置文件中
内容的提问来源于stack exchange,提问作者binford
相关产品推荐
相关产品推荐

