MS Dynamics: создание токена обновления для OAuth - PullRequest
0 голосов
/ 10 мая 2018

Я использую OData API MS Dynamics. Здесь мы делаем аутентификацию, используя oauth

Я беру ссылку из Ссылка: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/developer-guide?view=dynamics-ce-odata-9

https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/connect-customer-engagement-web-services-using-oauth

Я использую Web Api, поэтому мы следовали ниже ссылки.

https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/oauth-cross-origin-resource-sharing-connect-single-page-application

Шаги, которым мы следуем:

1 . Зарегистрировано приложение в Microsoft Azure:

Ссылка: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/walkthrough-register-dynamics-365-app-azure-active-directory

2 . Получить токен с помощью ADAL.js. - Пробовал с ADAL C # sdk, но он не работает, так как диалоговое окно для входа в систему не может появиться в проекте Asp.Net Core Web Api.

Ссылка: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/connect-customer-engagement-web-services-using-oauth

Для генерации токена мы используем только ApplicationId, ResourceUrl (URL-адрес динамического ресурса).

3 . Пройдите как токен на предъявителя для остальных API. Это сработало.

Необходимость: мы должны обновить токен, если токен истек. Мы попытались использовать c # ADAL SDK, который указан в самом документе.

   AuthenticationContext authContext =
                new AuthenticationContext("https://login.windows.net/common/", false);

   AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientId, new Uri(redirectUrl), new PlatformParameters());

Исключение: метод или операция не реализованы.

в Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.Platform.WebUIFactory.CreateAuthenticationDialog (IPlatformParameters параметры)

Можете ли вы нам помочь, как мы можем обновить токен в Web Api (Asp.net Core) И как мы можем получить refresh_token в MS Dynamics OAuth. Есть ли у вас какой-либо другой подход для доступа к токену / обновлению токена?

Примечание : Мы разрешаем только диалоговое окно oauth входа в систему со страницы html один раз и сохраняем указанный токен. Мы должны использовать один и тот же токен для генерации нового токена или любой другой способ обновить токен (без повторного вызова диалогового окна) для использования в MS Dynamics OData Web Api. Я использую Asp.net Core Web API Project для взаимодействия между динамиками.

1 Ответ

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

Использование:

AuthenticationResult authenticationResult = authenticationContext.AcquireTokenAsync (ClientConfig.CRMOrgUrl, clientcred). Результат ;

Справка:

https://community.dynamics.com/crm/b/gustafscrmblog/archive/2017/09/15/authenticationresult-acquiretoken-deprecated-in-adal-3-x-and-how-to-fix

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