我使用的MS动力学的OData API。 在这里,我们使用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。 注册的应用微软的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的核心Web API项目。
参考: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/connect-customer-engagement-web-services-using-oauth
为了生成我们只使用的applicationID,ResourceUrl(动态资源URL)令牌。
3。 通过不记名令牌的REST 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核心)。 而且,如何才能在refresh_token MS动力学的OAuth。 你有没有其他的方法来访问令牌/刷新令牌?
注意 :我们只允许HTML页面登录的OAuth对话框一次,并存储给定的令牌。 我们可以选择使用同样的道理,生成新的令牌或任何其他方式来刷新令牌(无提示对话框第二次)是在MS动态的OData的Web API的使用。 我使用Asp.net核心Web API项目进行动态的相互作用。