我遵循此Microsoft Azure Mobile Service Authentication Tutorial,尝试为我的Windows Store C#app添加服务器身份验证功能。但是,在完成每个步骤后,当我运行我的应用程序时,它显示应用程序无法连接到该服务。
我发现这有用blog有关解决Azure移动服务中的Azure身份验证问题。要进行故障排除,我在firefox Web浏览器中键入链接: myServiceUrl / login / aad ,但是我收到错误响应: 此请求已被拒绝授权。
我也按照相同的教程使用Google登录进行测试。结果证明它正常工作。当我输入链接: myServiceUrl / login / google 时,网页浏览器将我引导至google登录页面,与我输入 myServiceUrl / login / aad <时的Unauthorization错误消息不同/ em>的。
虽然google登录工作正常,但我们希望使用Azure Active Directory身份验证。谁能告诉我们什么可能是错的?任何疑难解答建议也表示赞赏。谢谢。
答案 0 :(得分:2)
“应用程序无法连接到服务”错误来自Windows中的Web身份验证代理从其尝试访问的资源收到错误响应时。有几个问题可能导致这种情况,我会尝试解决最常见的问题。
我注意到您链接的tutorial是针对.NET后端的。如果您使用的是Mobile Services .NET后端,则需要额外的步骤来配置AAD服务器流,这是描述问题的常见原因。在本教程中,它的标题是“为AAD登录配置您的.NET移动服务”。在后端项目中,您需要安装Mobile Services .NET Backend Security Extension NuGet包。然后,在WebApiConfig.cs中,您需要包含
options.LoginProviders.Remove(typeof(AzureActiveDirectoryLoginProvider));
options.LoginProviders.Add(typeof(AzureActiveDirectoryExtendedLoginProvider));
这允许运行时使用服务器流以及首先与.NET后端一起发布的客户端流(利用Active Directory身份验证库)。
等待,或者在Node运行时,接下来要做的是检查AAD配置。在AAD门户中,确保您的应用程序注册使用移动服务的/ login / aad端点作为资源URI。它必须与移动服务门户中提供的值完全匹配。如果您使用Node后端,这也应该是重定向URI之一。对于.NET,您可以使用/ signin-aad端点代替重定向URI。
您还应检查是否已从AAD注册中复制了客户端ID,并将其粘贴到移动服务门户的“标识”选项卡中。为了完整起见,还应填写“允许租户”字段,但我不认为这是导致此问题的原因。
最后,如果您的AAD租户与ADFS联合,那么可能会导致各种各样的问题。最大的案例来自需要配置企业身份验证的WAB。这通常仅在设备加入域/在公司网络上时引起问题。该行为是移动服务Windows应用商店SDK的已知错误,但有一种解决方法可用。很高兴在需要时提供。