需要Windows Azure应用程序来验证Office 365 Active Directory

时间:2015-09-21 17:06:32

标签: asp.net-mvc office365 azure-web-sites azure-active-directory

我有一个mvc Web应用程序,我已经发布到Windows Azure。我想使用Office 365 Active Directory在登录时进行身份验证。我已经用Azure窗口输入了一张票,他们已经把我送到了这里。

我觉得我已经接近搞清楚了。当我选择登录时,它会将我带到微软登录页面并查看我的身份验证,但在返回我的应用程序时,我收到以下错误。我已经更改了客户端密钥十几次并重新创建了azure发布配置文件和azure app。

错误:

远程服务器返回错误:(401)未经授权。   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Net.WebException:远程服务器返回错误:(401)未经授权。

来源错误:

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈追踪:

[WebException:远程服务器返回错误:(401)未经授权。]    System.Net.HttpWebRequest.GetResponse()+ 1465    Microsoft.IdentityModel.Clients.ActiveDirectory.d__2.MoveNext()+378    System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)+99    System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)+58    Microsoft.IdentityModel.Clients.ActiveDirectory.d__0`1.MoveNext()+ 410

[AdalServiceException:AADSTS70002:验证凭据时出错。 AADSTS50012:**提供了无效的客户端密钥 跟踪ID:fa6387cc-0e46-417d-a109-0d6f356b619b 相关ID:5bf34f08-6b63-4845-b684-85ddc6d27e27 时间戳:2015-09-21 13:00:07Z]    Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.RunAsyncTask(任务`1任务)+89    Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenByAuthorizationCode(String authorizationCode,Uri redirectUri,ClientCredential clientCredential,String resource)+64    NavPO.Startup.b__7_0(AuthorizationCodeReceivedNotification context)+279    Microsoft.Owin.Security.OpenIdConnect.d__1a.MoveNext()+ 4931    System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()+26    Microsoft.Owin.Security.OpenIdConnect.d__1a.MoveNext()+6453    System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)+99    System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)+58    Microsoft.Owin.Security.Infrastructure.d__0.MoveNext()+ 581    System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)+99    System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)+58    Microsoft.Owin.Security.Infrastructure.d__0.MoveNext()+225    System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)+99    System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)+58    Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.d__5.MoveNext()+ 187    System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)+99    System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)+58    Microsoft.Owin.Security.Infrastructure.d__0.MoveNext()+ 561

1 个答案:

答案 0 :(得分:3)

从错误消息:

AdalServiceException:AADSTS70002:验证凭据时出错。 AADSTS50012:**提供了无效的客户端密码

您的应用中正在运行Azure AD代码,正在尝试完成登录流程。它没有这样做,因为您的Web应用程序中配置的客户端密码(可能在您的web.config中)不正确 - 即它不匹配Azure AD应用程序中配置的任何秘密。

以下面的示例作为起点,并将其与您的应用进行比较,以了解可能出现错误配置的地方:

https://github.com/AzureADSamples/WebApp-OpenIDConnect-DotNet