OAuth для канала OData Microsoft Dynamics Marketing

Я пытаюсь подключиться к службе данных 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.


person mgrowan    schedule 24.07.2014    source источник
comment
Не могли бы вы поделиться своим решением этой проблемы?   -  person Vladimir    schedule 20.08.2014


Ответы (2)


Доступ к фидам действительно возможен. Но вы должны зарегистрировать приложение в Azure Active Directory и авторизовать его для доступа к Dynamics Marketing.

Пожалуйста, посмотрите мой BlogPost по этой теме здесь - включает шаги и пример кода :-)

Я также опубликовал командлеты PowerShell на GitHub, которые делают это более общим способом и не используют прокси-класс для модели данных. Командлеты PowerShell для доступа к MDM через OData и SDK

person Christian Abeln    schedule 15.04.2015
comment
Однако вы могли бы включить в свой ответ образец кода. - person Bruno Toffolo; 15.04.2015

Я получил ответ от Microsoft, что другие клиенты, кроме Power Query, не поддерживаются. Таким образом, приведенный выше код верен, и пока нет поддержки для добавления разрешения на доступ к нему с другими приложениями.

person mgrowan    schedule 19.08.2014