Я использую 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 для взаимодействия между динамиками.