C# Azure移动服务的Azure Active Directory身份验证失败

C# Azure移动服务的Azure Active Directory身份验证失败,c#,azure,windows-store-apps,azure-mobile-services,azure-active-directory,C#,Azure,Windows Store Apps,Azure Mobile Services,Azure Active Directory,我遵循这一点,尝试为我的Windows应用商店C#应用程序添加服务器身份验证功能。然而,在完成每一步后,当我运行我的应用程序时,它显示应用程序无法连接到服务 我发现这是一个关于Azure移动服务中Azure身份验证问题疑难解答的有用工具。要进行故障排除,我在firefox web浏览器中键入链接:myServiceUrl/login/aad,但收到错误响应: 此请求的授权已被拒绝 我还按照同样的教程使用谷歌登录进行了测试。结果证明它工作正常。当我键入链接:myServiceUrl/login/g

我遵循这一点,尝试为我的Windows应用商店C#应用程序添加服务器身份验证功能。然而,在完成每一步后,当我运行我的应用程序时,它显示应用程序无法连接到服务

我发现这是一个关于Azure移动服务中Azure身份验证问题疑难解答的有用工具。要进行故障排除,我在firefox web浏览器中键入链接:myServiceUrl/login/aad,但收到错误响应: 此请求的授权已被拒绝

我还按照同样的教程使用谷歌登录进行了测试。结果证明它工作正常。当我键入链接:myServiceUrl/login/google时,web浏览器会将我指向google登录页面,这与我键入myServiceUrl/login/aad时的未授权错误消息不同

虽然google登录工作正常,但我们希望使用Azure Active Directory身份验证。有人能告诉我们可能出了什么问题吗?任何故障排除建议也将不胜感激。谢谢。

每当Windows中的Web身份验证代理从其试图访问的资源接收到错误响应时,就会出现“应用程序无法连接到服务”错误。有几个问题可能导致这种情况,我将尝试解决最常见的问题

我注意到你链接到的是.NET后端。如果您使用的是移动服务.NET后端,则需要额外的步骤来配置AAD服务器流,这是所述问题的常见原因。在本教程中,它的标题是“为AAD登录配置.NET移动服务”。在后端项目中,您需要安装NuGet软件包。然后,在WebApiConfig.cs中,您需要包括

options.LoginProviders.Remove(typeof(AzureActiveDirectoryLoginProvider));
options.LoginProviders.Add(typeof(AzureActiveDirectoryExtendedLoginProvider));
这允许运行时在使用客户端流(利用Active Directory身份验证库)的同时使用服务器流,客户端流最初是随.NET后端发布的

在此之前,或者在节点运行时的情况下,下一步要做的是检查AAD配置。在AAD门户中,确保应用程序注册使用移动服务的/login/AAD端点作为资源URI。它必须与移动服务门户中提供的值完全匹配。如果您使用的是节点后端,这也应该是重定向URI之一。对于.NET,您将使用/signin aad端点作为重定向URI

您还应检查是否已从AAD注册复制了客户端ID,并将其粘贴到移动服务门户的“标识”选项卡中。为完整起见,还应填写“允许的租户”字段,但我认为这不是问题的原因


最后,如果您的AAD租户与ADF联合,那么可能会出现一系列问题。最大的案例来自需要配置用于企业身份验证的WAB。这通常仅在设备加入域/在公司网络上时才会导致问题。这种行为是移动服务Windows应用商店SDK的一个已知错误,但有一个解决方法可用。如果需要,很高兴提供。

非常有帮助的Matt,将nuget包和代码添加到WebApiConfig.cs中,第一次解决了这个问题。实际上-几乎-我在广告中的回复url配置为https://.azure-mobile.net/login/aad (来自移动服务身份配置的lifed)和我需要更改/添加到https://.azure-mobile.net/signin-aad (但来自广告的错误信息是明确而有用的)超级解决方案。这对我帮助很大。为了这个解决方案,我绞尽脑汁了好几个小时。