致电客户服务导致401未经授权

时间:2019-10-24 15:34:24

标签: oauth-2.0 axapta x++ dynamics-365 dynamics-365-operations

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

我们已经设置了应用注册

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

我们已在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

1 个答案:

答案 0 :(得分:3)

在您的OAuth令牌请求中验证resource(并在aud(受众群体)字段的https://jwt.io处验证令牌)。 它应该与您的主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''