0

Я работаю над приложением, где мне нужно продолжать разговор с некоторыми из API Dynamics CRM в фоновых заданиях (каждые несколько минут для загрузки обновленного контента).Приложение демона Dynamics CRM с сертификатом утверждения клиента (Azure AD) дает 401

Поскольку аутентификация ADAL с учетными данными пользователя (разрешениями приложений) безупречно используется с API-интерфейсами CRM, у меня создалось впечатление, что я получу ее работу с учетными данными Certificate Assertion Certificate.

код выглядит примерно так -

var certCred = new ClientAssertionCertificate(clientId, cert); 
var result = await authContext.AcquireTokenAsync("https://<tenant_name>.crm4.dynamics.com/", certCred); 

Это работает, и я могу получить маркер доступа. Однако, поскольку это полномочия делегата, я не могу выполнить авторизацию для доступа к веб-приложениям CRM.

Возможно, я использую учетную запись service/daemon для выполнения фоновых задач, но я хотел бы сделать это больше в пути подтверждения утверждения клиента. Кто-нибудь нашел решение таких сценариев? Поддерживает ли CRM WebAPI разрешения делегирования?

Есть ли другой способ сделать это?

ответ

1

Я хочу сначала прояснить некоторые концепции. Клиентский учетный поток используется для получения разрешения приложения вместо делегированных разрешений для приложения. Как правило, поток предоставления кода OAuth 2.0 используется для получения разрешения делегата.

Из описания кажется, что вы хотите получить разрешение приложения через поток учетных данных клиента, однако токен недействителен для вызова веб-API Dynamics CRM. После исследования я обнаружил, что этот вопрос поднимался несколько раз, но ответа нет.

Основываясь на моем понимании, API-интерфейс Dynamics CRM, похоже, не поддерживает токен приложения (приобретая использование клиентского учетного потока), потому что, когда вы регистрируете приложения для этого API на Azure, мы не можем проверить какое-либо разрешение/scope для уровня приложения, как показано на рисунке ниже: enter image description here

+0

Правильно, так что будет идеальным способом создания службы демона? –

+0

Чтобы использовать веб-API Dynamics CRM в службе демона, мы можем аутентифицироваться с потоком паролей. Более подробно вы можете обратиться [здесь] (https://msdn.microsoft.com/en-us/library/hh675404.aspx) –

+0

Для службы Deamon, возможно, ответ на мой вопрос может помочь вам: http://stackoverflow.com/вопросы/37454539/с помощью-Adal-с-острый, как конфиденциальный пользователь-демон-сервер-сервер-сервер-401-U – IntegerWolf

 Смежные вопросы

  • Нет связанных вопросов^_^