我有一个mvc web应用程序,我已经发布到windows Azure。我想在登录时使用我们的Office 365 Active Directory进行身份验证。我在windows Azure上输入了一张票,他们把我送到这里来了。
我觉得我快要搞清楚了。当我选择登录时,它将我带到microsoft登录页面并查找对我进行身份验证,但在返回我的应用程序时,我得到以下错误。我已经更改了十几次客户端密钥,并重新创建了azure发布配置文件和azure应用程序。
错误:远程服务器返回一个错误:(401)Unauthorized。描述:在执行当前web请求期间发生了未处理的异常。请查看堆栈跟踪以获得有关错误及其在代码中的起源位置的更多信息。
异常详细信息:System.Net.WebException: The remote server returned an error: (401) Unauthorized.
源错误:
在执行当前web请求期间生成了一个未处理的异常。有关异常的来源和位置的信息可以使用下面的异常堆栈跟踪来识别。
堆栈跟踪:
[webeexception: The remote server returned an error: (401) Unauthorized.]System.Net.HttpWebRequest.GetResponse () + 1465Microsoft.IdentityModel.Clients.ActiveDirectory.d__2.MoveNext () + 378System.Runtime.CompilerServices.TaskAwaiter。ThrowForNonSuccess(Task Task) +99System.Runtime.CompilerServices.TaskAwaiter。HandleNonSuccessAndDebuggerNotification(Task Task) +58Microsoft.IdentityModel.Clients.ActiveDirectory.d__0"1. movenext () + 410
[AdalServiceException: AADSTS70002:验证凭据错误。]AADSTS50012: **提供了无效的客户端密钥产品编号:fa6387cc-0e46-417d-a109-0d6f356b619b关联ID: 5bf34f08-6b63-4845-b684-85ddc6d27e27时间戳:2015-09-21 13:00:07Z]Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext。RunAsyncTask(Task ' 1 Task) +89Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext。AcquireTokenByAuthorizationCode(String authorizationCode, Uri redirectUri, ClientCredential ClientCredential, String resource) +64NavPO.Startup。b__7_0(AuthorizationCodeReceivedNotification上下文)+279Microsoft.Owin.Security.OpenIdConnect.d__1a.MoveNext () + 4931System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () + 26Microsoft.Owin.Security.OpenIdConnect.d__1a.MoveNext () + 6453System.Runtime.CompilerServices.TaskAwaiter。ThrowForNonSuccess(Task Task) +99System.Runtime.CompilerServices.TaskAwaiter。HandleNonSuccessAndDebuggerNotification(Task Task) +58Microsoft.Owin.Security.Infrastructure.d__0.MoveNext () + 581System.Runtime.CompilerServices.TaskAwaiter。ThrowForNonSuccess(Task Task) +99System.Runtime.CompilerServices.TaskAwaiter。HandleNonSuccessAndDebuggerNotification(Task Task) +58Microsoft.Owin.Security.Infrastructure.d__0.MoveNext () + 225System.Runtime.CompilerServices.TaskAwaiter。ThrowForNonSuccess(Task Task) +99System.Runtime.CompilerServices.TaskAwaiter。HandleNonSuccessAndDebuggerNotification(Task Task) +58Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.d__5.MoveNext () + 187System.Runtime.CompilerServices.TaskAwaiter。ThrowForNonSuccess(Task Task) +99System.Runtime.CompilerServices.TaskAwaiter。HandleNonSuccessAndDebuggerNotification(Task Task) +58Microsoft.Owin.Security.Infrastructure.d__0.MoveNext () + 561
从错误消息:
AdalServiceException: AADSTS70002:验证凭据错误。AADSTS50012: **提供无效的客户端秘密
有Azure AD代码运行在你的应用程序,试图完成登录流程。它之所以不能这样做,是因为在你的web应用程序中配置的客户端秘密(可能在你的web.config中)是不正确的-即它不匹配在你的Azure AD应用程序中配置的任何秘密。
以以下示例为起点,并将其与您的应用程序进行比较,看看哪些地方可能配置错误:
https://github.com/AzureADSamples/WebApp-OpenIDConnect-DotNet