Oauth 2.0 打电话给客户服务部会导致401次未经授权

Oauth 2.0 打电话给客户服务部会导致401次未经授权,oauth-2.0,axapta,x++,dynamics-365,dynamics-365-operations,Oauth 2.0,Axapta,X++,Dynamics 365,Dynamics 365 Operations,我们正在尝试连接到自定义Dynamics 365金融服务操作,但正在努力进行授权 我们已设置应用程序注册 将_uri集重定向到动态url(根) 已启用的隐式授权(用于访问令牌和ID令牌) 单一租户 已分配“Dynamics ERP>CustomService.FullAccess”API权限 已分配“Dynamics ERP>Odata.FullAccess”API权限 已分配“Dynamicd ERP>Connector.FullAccess”API权限+已授予整个广告的管理员权限 创造了一

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

我们已设置应用程序注册

  • 将_uri集重定向到动态url(根)
  • 已启用的隐式授权(用于访问令牌和ID令牌)
  • 单一租户
  • 已分配“Dynamics ERP>CustomService.FullAccess”API权限
  • 已分配“Dynamics ERP>Odata.FullAccess”API权限
  • 已分配“Dynamicd ERP>Connector.FullAccess”API权限+已授予整个广告的管理员权限
  • 创造了一个秘密
我们在Dynamics 365环境中添加了具有系统管理员角色的用户的应用程序(客户端ID) 我们可以通过Postman和.NET(Microsoft.IdentityModel.Clients.ActiveDirectory)成功检索访问令牌 我们试图达到两个,

然而,当我们调用定制服务时,我们会得到一个未经授权的401 由于同样的原因,对Odata的调用也会失败。

在您的OAuth令牌请求中验证
资源
(并在for
aud
(观众)字段中验证令牌)。 它应该与您的主url相同,结尾不带
/
(如
https://d365fo-10-12345678baef10230aos.cloudax.dynamics.com

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

您始终可以检查Windows事件日志
Microsoft Dynamics AX WebApi/操作
有这样好的信息:

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'' 

可能包含一些想法。您是否缺少
租户id
?我已经好几年没这么做了。这里有一篇文章可能会有所帮助:我隐约记得有
GUID
,您可能需要从您的端点权限获得,但逻辑应用程序可能需要它。感谢提供事件日志位置。我们在那里发现了我们的问题。最终与发送给“devaossoap”而不是“devaos”有关。虽然我们之前都做过测试,但我想我们一定是同时改变了其他一些东西。谢谢,伙计!