Salesforce集成Azure DevOps遇302跳转问题求助
问题排查与解决方案
1. 移除手动添加的Authorization头
使用Named Credential时,Salesforce会自动处理认证逻辑,手动设置Authorization头会干扰内置的认证流程,导致Azure DevOps无法识别有效凭证,触发302登录跳转。直接删除代码中这一行:
request.setHeader('Authorization', '{!$Credential.Password}');
2. 检查Named Credential核心配置
确保Named Credential的关键配置正确:
- 身份验证协议:若使用Azure DevOps个人访问令牌(PAT),选择「HTTP Header」,设置Header字段名为
Authorization,Header值为Basic {base64编码内容}(编码规则:将你的PAT值:x-oauth-basic字符串转base64);若用OAuth 2.0,需完成授权流程并勾选「生成授权头」 - 基础URL:填写Azure DevOps组织根地址,比如
https://dev.azure.com/你的组织名,不要附加后续API路径 - 权限设置:勾选「允许发送凭据」选项
3. 验证端点路径拼接
确认代码中端点拼接无重复路径或域名错误,比如Named Credential的基础URL是https://dev.azure.com/your-org,代码里的端点应写为:
request.setEndpoint('callout:Namedcred/_apis/wit/workitems/$issue?api-version=6.0');
4. 确认Azure DevOps PAT权限
检查使用的PAT是否拥有Work Items - Write权限,且作用域覆盖目标项目。Postman能成功说明PAT本身有效,但要确保Named Credential中配置的PAT与Postman使用的一致且未过期。
5. 开启Named Credential调试日志
在Salesforce Setup中找到对应Named Credential,开启「Debug Logs」,重新执行请求后查看日志,确认实际发送的请求头是否携带了正确的认证信息,定位请求异常的具体原因。
内容的提问来源于stack exchange,提问作者Ranganath C N
相关产品推荐
相关产品推荐

