Azure Data Factory生成Bearer Token报错:resource请求参数不被支持
问题解决:Azure Data Factory中获取Bearer Token报错“不支持'resource'请求参数”
问题描述
按照教程生成Bearer Token,使用API https://login.microsoftonline.com/<tenantid>/oauth2/token,该请求在Postman中正常运行,但在Azure Data Factory(ADF)中执行时触发错误:
"error": "invalid request" "error description": "xxxx: 不支持'resource'请求参数。\r\n跟踪ID: xxxxx\r\n关联ID: xxxx\r\n时间戳: xxxx" "error codes": [901002]
原因分析
这个错误源于你使用的Azure AD v1.0令牌端点与ADF的请求配置不兼容,或者当前场景需要使用v2.0端点(v2.0端点不再支持resource参数,改用scope参数)。另外,ADF的HTTP活动对请求体格式、参数编码的要求和Postman存在差异,也会引发这类问题。
解决方案
切换到v2.0令牌端点
将请求URL替换为v2.0版本:https://login.microsoftonline.com/<tenantid>/oauth2/v2.0/token同时把请求体中的
resource参数替换为scope,值设置为目标资源的ID加上.default,例如访问Azure管理API的话,scope值为:https://management.azure.com/.default保持其他参数(
grant_type=client_credentials、client_id、client_secret)不变,确保请求体格式为application/x-www-form-urlencoded。若坚持使用v1.0端点
- 确认你的Azure AD应用注册支持v1.0令牌(在应用注册的“认证”菜单中,检查“支持的账户类型”和“令牌版本”配置)。
- 在ADF的HTTP活动中严格按v1.0要求配置:
- 请求方法设为POST
- 请求头添加
Content-Type: application/x-www-form-urlencoded - 请求体以表单格式传递参数:
grant_type=client_credentials&client_id=xxx&client_secret=xxx&resource=xxx,禁止用JSON格式传递。
- 排查ADF中是否对参数做了额外转义,导致
resource参数格式异常。
内容的提问来源于stack exchange,提问作者Vamsi Bitra
相关产品推荐
相关产品推荐

