CRM 2016, API OAuth и OData - PullRequest
       10

CRM 2016, API OAuth и OData

0 голосов
/ 19 сентября 2018

У меня есть локальная система CRM 2016, которая использует Active Directory, и когда я пытаюсь получить доступ к API OData из настольного приложения, используя сетевые учетные данные, я получаю неавторизованное сообщение.

После изучения этого вопроса может возникнуть необходимость аутентификации с использованием OAuth, что, в свою очередь, потребует установки служб федерации AD.

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

Мне удалось найти множество примеров того, как этого добиться с помощью CRM online / Azure AD, но не так много для локального 2016 года.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Если ваше настольное приложение построено на платформе .NET и работает в той же локальной сети, что и сервер CRM, тогда вы можете использовать вместо него XRM Tooling SDK.

https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide/dn689057%28v%3dcrm.8%29

Этот SDK позволяетвы создаете объект CrmServiceClient, используя строку подключения из вашего файла конфигурации.Этот объект реализует интерфейс IOrganization, что означает, что он имеет методы CRUD, которые вы можете использовать в своей CRM.

CrmServiceClient service = new CrmServiceClient(ConfigurationManager.ConnectionStrings["mycrmconnstr"].ConnectionString);
0 голосов
/ 19 сентября 2018

Да, это способ заставить его работать с CRM On-Premise.

Вам нужно будет установить и настроить ADFS (в соответствии с документацией ADFS 3.0 поддерживается последней версией),После того, как все настроено, общий процесс очень похож на тот, который вы выполняете в Интернете с помощью AAD:

  1. Регистрация приложения

Add-AdfsClient -ClientId <CLIENT_ID> -Name <APP_NAME> -RedirectUri <REDIRECT_URI>

Предоставить CRM разрешение на применение

Grant-AdfsApplicationPermission -ClientRoleIdentifier <CLIENT_ID> -ServerRoleIdentifier <CRM_URI>

Подключение с использованием Предоставление кода авторизации

Код авторизации - это единственный поток, реализованный в ADFS 3.0 (вот почему я упоминал об этом раньше), поэтому не тратьте 4-5 часовпытаюсь использовать Implicit, как я сделал :(. ADFS 4.0 реализует его (наряду с Client Credential и Resource Owner Password Credentials, но в теории не поддерживается (хотя я видел, как это работает).

Как выЯ сказал, что ЭТО один очень полезный вопрос, хотя он не связан с Dynamics.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...