Я пытаюсь подключиться к службе данных OData Microsoft Dynamics Marketing. На этой странице перечислены каналы OData для быстрого доступа, но нет иметь любую информацию о том, как пройти аутентификацию против него.
Я пытался получить токен доступа с помощью Microsoft.IdentityModel.Clients.ActiveDirectory -Version 1.0.4 следующим образом:
var authenticationContext = new AuthenticationContext("https://login.windows.net/" + domainName);
var authenticationResult = authenticationContext.AcquireToken(resource, clientId, redirectUri);
var token = authenticationResult.AccessToken;
domainName
похож на contoso.onmicrosoft.com
, но я не знаю, что использовать для clientId
, redirectUri
, resource
.
Я пробовал много разных комбинаций и имел такие ошибки, как:
invalid_request: AADSTS90027: The client 'xxxxxxxx-9068-486b-bdd2-dac26b8a5a7a' and resource 'Microsoft.DynamicsMarketing' identify the same application.
а также
access_denied: AADSTS65005: The client application has requested access to resource 'Microsoft.DynamicsMarketing'. This request has failed because the client has not specified this resource in its requiredResourceAccess list.
Думаю, я близок к этому. Я зарегистрировал приложение в Azure AD как собственное клиентское приложение и использовал его clientId
и redirectUri
с Microsoft.DynamicsMarketing
в качестве ресурса. Я нашел это из списка участников-служб, Get-MsolServicePrincipal
используя «Модуль Windows Azure Active Directory для Windows PowerShell».
Это правильные параметры, и мне просто нужно как-то разобраться с разрешениями, или я далеко?
Обновление. Правильным resource
является https://marketing-infra.dynamics.com/
, которое является одним из имен участников службы, перечисленных, как и предыдущее имя, которое я использовал Microsoft.DynamicsMarketing
. Это работает с clientId
и redirectUri
, которые я захватил из Fiddler из Power Query. Я почти уверен, что для того, чтобы он работал с моим clientId, мне нужно предоставить Dynamics Marketing разрешения в регистрации приложения Azure, «разрешения для других приложений». Проблема в том, что Dynamics Marketing не является приложением, которое можно добавить, и разрешения делегата Dynamics CRM не имеют роли для Dynamics Marketing.