呼叫客户服务会导致401未经授权

问题描述 投票:1回答:1

我们正在尝试连接到自定义Dynamics 365 Finance服务操作,但正努力进行授权。

我们已经设置了应用注册

  • Redirect_uri设置为动态网址(根)
  • 已启用隐式授予(用于访问令牌和ID令牌)
  • 单个租户
  • 分配了“ Dynamics ERP> CustomService.FullAccess” API权限
  • 分配了“ Dynamics ERP> Odata.FullAccess” API权限
  • 已分配“动态ERP> Connector.FullAccess” API权限+已授予整个AD的管理员同意
  • 创建秘密

我们已经在Dynamics 365环境中向具有系统管理员角色的用户添加了应用程序(客户端ID)我们可以通过Postman和.NET(Microsoft.IdentityModel.Clients.ActiveDirectory)成功检索访问令牌。enter image description here我们尝试同时到达https://xxxxxxdevaossoap.cloudax.dynamics.comhttps://xxxxxxdevaos.cloudax.dynamics.com

然而,当我们调用自定义服务时,我们得到了401未经授权enter image description here出于相同的原因,对Odata的调用也会失败。enter image description here

oauth-2.0 axapta x++ dynamics-365 dynamics-365-operations
1个回答
2
投票

在您的OAuth令牌请求中验证resource(并在https://jwt.io(受众群体)字段中的aud处验证令牌)。它应与您的主URL相同,但末尾没有/(例如https://d365fo-10-12345678baef10230aos.cloudax.dynamics.com)。

还请验证Azure Active Directory应用程序mi=SysAADClientTable客户端ID等于令牌中的appid字段(并且没有任何特殊字符)。

您可以随时检查Windows事件日志Microsoft-Dynamics-AX-WebApi/Operational有这样的好信息:

Source:      Microsoft-Dynamics-AX-WebApi
Category:    WebApiOwinConfigurationMissingError
Level:       Error
Description: Web API Owin Authentication Configuration Missing Error
infoMessage: Can read the token but failed validating token with exception 
'IDX10214: Audience validation failed. 
Audiences: 'https://d365fo-10-12345678baef10230aos.cloudax.dynamics.com/'. 
Did not match:  validationParameters.
ValidAudience: 'null' or validationParameters.ValidAudiences:
 'https://d365fo-10-12345678baef10230aos.cloudax.dynamics.com,
 00000015-0000-0000-c000-000000000000,
 Microsoft.ERP'' 
© www.soinside.com 2019 - 2024. All rights reserved.