首页 文章

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

提问于
浏览
2

我按照这个Microsoft Azure Mobile Service Authentication Tutorial,尝试为我的Windows Store C#app添加服务器身份验证功能 . 但是,在完成每个步骤后,当我运行我的应用程序时,它表明应用程序无法连接到该服务 .

我发现这对于解决Azure移动服务中的Azure身份验证问题非常有用blog . 要进行故障排除,我在firefox Web浏览器中键入链接:myServiceUrl / login / aad,但是我收到错误响应:此请求已拒绝授权 .

我也按照相同的教程使用Google登录进行测试 . 结果是正常工作 . 当我输入链接:myServiceUrl / login / google时,网页浏览器会将我引导至google登录页面,这与我输入myServiceUrl / login / aad时的Unauthorization错误消息不同 .

虽然谷歌登录工作正常,但我们希望使用Azure Active Directory身份验证 . 谁能告诉我们什么可能是错的?任何疑难解答建议也表示赞赏 . 谢谢 .

1 回答

  • 2

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

    我注意到你链接的tutorial是针对.NET后端的 . 如果您使用的是Mobile Services .NET后端,则需要额外的步骤来配置AAD服务器流,并在 Headers "Configure your .NET mobile service for AAD login."下面's a common cause of the issue being described. In the tutorial, it'在后端项目中,您需要安装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 endpoints 作为资源URI . 它必须与移动服务门户中提供的值完全匹配 . 如果您使用Node后端,这也应该是重定向URI之一 . 对于.NET,您可以使用/ signin-aad endpoints 代替重定向URI .

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

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

相关问题