Azure Logic Apps无法获取AAD身份验证令牌问题求助
Azure Logic App AD OAuth调用API获取令牌失败(受众无效)
问题背景
尝试通过Azure Logic App的Active Directory OAuth身份验证调用第三方API时,始终收到The audience '2222-2222-2222-2222' is invalid错误,已尝试多种受众格式均无效:
- 应用注册信息:
- API应用:
api,应用ID2222-2222-2222-2222 - Logic App应用:
logic,应用ID3333-3333-3333-3333,已创建客户端密钥secretValue,并添加了API的access_as_application应用权限且完成管理员授予
- API应用:
- Logic App配置:
- 身份验证类型:Active Directory OAuth
- 颁发机构:空白
- 租户:
1111-1111-1111-1111 - 受众:已尝试
2222-2222-2222-2222、api://2222-2222-2222-2222等多种格式
解决方案
1. 确认API应用的标识符URI(核心)
受众参数必须严格匹配API应用注册中的标识符URI(Application ID URI),操作步骤:
- 进入Azure AD -> 应用注册 -> 找到
api应用 -> 切换到「概述」标签页 - 复制页面中的「标识符URI(Application ID URI)」值,这就是Logic App中需要填写的正确受众(通常格式为
api://{api-app-id},但以实际配置为准)
2. 修正Logic App的OAuth配置
- 颁发机构不能留空,根据API使用的Azure AD端点版本填写:
- v2端点:
https://login.microsoftonline.com/{tenant-id}/v2.0 - v1端点:
https://login.microsoftonline.com/{tenant-id}
- v2端点:
- 受众粘贴第一步复制的标识符URI,不要添加
.default或权限名称(这些是作用域参数的内容,不属于受众范畴)
3. 二次确认权限配置
- 确保
logic应用注册添加的是应用权限(而非委派权限),且该权限已由全局管理员或API权限管理员完成「授予管理员同意」操作 - 检查API应用注册的「公开API」标签页,确认
access_as_application权限的「谁能同意」设置为「管理员和用户」或「仅管理员」(应用权限必须经过管理员同意才能生效)
4. 预测试验证(可选)
用Postman模拟客户端凭证流获取令牌,验证配置正确性:
- 请求地址:
POST https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token - 请求参数(form-data格式):
grant_type:client_credentialsclient_id:3333-3333-3333-3333client_secret:secretValuescope:{api-identifier-uri}/.default(例如api://2222-2222-2222-2222/.default)
- 如果成功获取令牌,说明配置无误,将受众参数同步到Logic App即可
内容的提问来源于stack exchange,提问作者Kristoffer Jälén
相关产品推荐
相关产品推荐

