Для упрощения вызова веб-сервисов D365O, которые всегда требуют аутентификации, Microsoft написал два класса, открытый код которых выложен по ссылке https://github.com/microsoft/Dynamics-AX-Integration/tree/master/ServiceSamples/AuthenticationUtility.

Рекомендуется создать проект, который будет содержать эти классы, и использовать ссылку на него в собственных проектах, где необходимо подключение к D365O через одинаковое приложение Azure. К этому проекту нужно добавить ссылку на пакет Microsoft.IdentityModel.Clients.ActiveDirectory, как описано в статье «Добавление пакета Microsoft.IdentityModel.Clients.ActiveDirectory».

Первый из классов представляет собой авторизационную информацию. Эта информация должна быть правильно прописана для работы веб-сервиса. Выглядит этот класс следующим образом:

Copy to Clipboard

Жирным шрифтом в коде выделены поля, значения которых нужно подставить самому.

Namespace выбираем такой же как и у остального проекта, к которому добавляется данный класс.

Значениями UriString и ActiveDirectoryResource – должен быть URL адрес D365O. URL адрес в переменной ActiveDirectoryResource не должен содержать / в конце.

UserName и Password – это, соответственно, логин и пароль корпоративной учетной записи, имеющей доступ к указанной D365O и указанному далее приложению Azure.

ActiveDirectoryTenant – это адрес URL, по которому происходит авторизация пользователя. Можно написать адрес входа для конкретной компании, а можно оставить как в примере (общий для всех компаний адрес).

ActiveDirectoryClientAppId – Application ID приложения Azure, имеющее доступ к необходимым ресурсам D365O для работы веб-сервиса.

ActiveDirectoryClientAppSecret – ключ приложения Azure, по которому можно подключиться к нему без ввода логина и пароля пользователя. В данном руководстве не рассмотрен.

Второй класс от Microsoft отвечает за логику авторизации на основе введенных в предыдущем классе авторизационных данных. Выглядит он следующим образом:

Copy to Clipboard

В коде жирным шрифтом выделена строка namespace. Нужно прописать там namespace, используемый в нашем проекте. В остальном класс остается таким же. Он содержит в себе название токена авторизации (статически прописанное значение “Authorization”), а также метод для получения значения этого токена. В дальнейшем этот токен будет использован при установке соединения с D365O.

Подготовил статью:

Дыкуха
ДыкухаБорис Александрович
Senior Software Developer, OntargIT
Published On: 21 апреля, 2021 / Рубрики: Technical Support /

Следите за новостями компании OntargIT

    Ознакомиться с Политикой конфиденицальности можно здесь.