oauth2.0 使用MSAL库“confidentialClientApplication.AcquireTokenForClient”获取访问令牌时出现请求超时错误

7uhlpewt  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(174)

我正在尝试将控制台应用程序作为使用EWS与Outlook Exchange Online通信的Windows服务运行。此应用程序具有OAuth身份验证,并且已在Azure门户上注册该应用程序的AppID。我能够生成访问令牌并成功与Exchange Online通信。但是,当从远程服务器运行时,它发出请求超时错误。向终结点发送的获取访问令牌的请求超时。
你能帮我解决这个问题吗?我无法识别问题。在访问代码下面:

var cca = ConfidentialClientApplicationBuilder
                .Create(ConfigurationSettings.AppSettings["appId"])
                .WithClientSecret(ConfigurationSettings.AppSettings["clientSecret"])
                .WithTenantId(ConfigurationSettings.AppSettings["tenantId"])
                .Build();
var ewsScopes = new string[] { ConfigurationSettings.AppSettings["EWSScope"] };  
var accessTokenRequest = cca.AcquireTokenForClient(ewsScopes);
var accessToken = accessTokenRequest.ExecuteAsync().Result.AccessToken;

低于错误
System.AggregateException: One or more errors occurred. ---> Microsoft.Identity.Client.MsalServiceException: Request to the endpoint timed out. ---> System.Threading.Tasks.TaskCanceledException: A task was canceled. at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Identity.Client.Http.HttpManager.<ExecuteAsync>d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Identity.Client.Http.HttpManager.<ExecuteWithRetryAsync>d__12.MoveNext() --- End of inner exception stack trace --- at Microsoft.Identity.Client.Internal.Requests.RequestBase.<HandleTokenRefreshErrorAsync>d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Identity.Client.Internal.Requests.ClientCredentialRequest.<ExecuteAsync>d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Identity.Client.Internal.Requests.RequestBase.<RunAsync>d__12.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Identity.Client.ApiConfig.Executors.ConfidentialClientExecutor.<ExecuteAsync>d__3.MoveNext() --- End of inner exception stack trace ---

cbeh67ev

cbeh67ev1#

远程服务器是否可以访问身份验证终结点(例如login.microsoftonline.com)。是否正在使用代理?您可以尝试从该远程服务器https://github.com/dseph/EwsEditor/releases运行ewseditor,查看是否可以使用oAuth进行身份验证

相关问题