Вызов службы поддержки приводит к 401 несанкционированному - PullRequest
1 голос
/ 24 октября 2019

Мы пытаемся подключиться к пользовательской операции службы Dynamics 365 Finance, но пытаемся авторизоваться.

Мы настроили регистрацию приложения

  • Redirect_uri установлен на динамикуurl (root)
  • Включено неявное предоставление (как для токенов доступа, так и для токенов ID)
  • Один клиент
  • Назначено разрешение API "Dynamics ERP> CustomService.FullAccess"
  • Назначено разрешение API «Dynamics ERP> Odata.FullAccess»
  • Назначено разрешение «Dynamicd ERP> Connector.FullAccess» API + предоставлено разрешение администратора для всей AD
  • Создан секрет

Мы добавили приложение (идентификатор клиента) в среду Dynamics 365 с пользователем, обладающим ролью системного администратора. Мы можем успешно получать токены доступа как через Postman, так и через .NET (Microsoft.IdentityModel.Clients. ActiveDirectory) enter image description here мы пытались связаться с https://xxxxxxdevaossoap.cloudax.dynamics.com & https://xxxxxxdevaos.cloudax.dynamics.com

Тем не менее, когда мы вызываем пользовательские службы, мыполучить 401 UnAuthorized enter image description here Вызов Odata также не удается по той же причине. enter image description here

1 Ответ

3 голосов
/ 25 октября 2019

Подтвердите resource в запросе на токен OAuth (и проверьте токен на https://jwt.io для поля aud (Аудитория)). Он должен совпадать с основным URL-адресом без / в конце (например, https://d365fo-10-12345678baef10230aos.cloudax.dynamics.com).

Также убедитесь, что Приложения Azure Active Directory (mi=SysAADClientTable) КлиентИдентификатор равен полю 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'' 
...