从网站验证到天蓝色的移动应用服务

时间:2018-02-04 20:25:36

标签: authentication mobile azure-web-sites azure-mobile-services

我有一个Azure移动应用服务,我使用我的(Cordova和Xamarin)移动应用程序。移动应用服务的URL为https://gonzo.azurewebsites.net/(不是真实的URL)。我想创建一个连接到我的Azure移动应用服务的网站(ASP.NET Core 2.0 Web App),就像我的应用程序一样。我尝试将其发布到奇闻趣事URL但是覆盖了我的移动应用服务,因此我不得不恢复它。我很想知道是否有办法真正做到这一点。 我的下一步是创建网站并使用其他网址https://kermit.azurewebsites.net/。我为我的应用移动服务使用社交身份验证。当我在本地调试localhost时,一切都很完美。我遇到的问题是,当我尝试从发布的网站登录时,无论是auth提供商(facebook,Microsoft,google),我都得到了403,而不是访问登录提供商提供的登录UI。 URL看起来像这样:https://gonzo.azurewebsites.net/.auth/login/facebook/callback?code=long-code

我认为可以通过在CORS中的Azure Mobile App服务中允许kermit来解决这个问题。我甚至尝试将CORS设置为允许所有主机(*),但这并没有什么区别。知道如何使这项工作吗?

1 个答案:

答案 0 :(得分:0)

  

我想创建一个连接到我的Azure移动应用服务的网站(ASP.NET Core 2.0 Web App),就像我的应用程序一样。我尝试将其发布到奇闻趣事URL但是覆盖了我的移动应用服务,因此我不得不恢复它。我很想知道是否有办法真正做到这一点。

根据您的要求,我假设您可以将.NET Core 2.0 Web App与您的移动应用程序一起部署,此时您的两个应用程序可以共享身份验证。对于详细教程,您可以关注Deploying multiple virtual directories to a single Azure Website

  

我遇到的问题是,当我尝试从发布的网站登录时,无论是auth提供商(facebook,Microsoft,google),都没有访问登录提供商提供的登录UI,而是获取带有URL的403,如下所示:https://gonzo.azurewebsites.net/.auth/login/facebook/callback?code=long-code

根据您的说明,您使用的是App Service Authentication / Authorization。我建议您通过浏览器直接访问https://<your-mobile-app-name>.azurewebsites.net/.auth/login/<provider-name>,以确保您已成功为移动应用设置身份验证。 如果我正确理解您要创建另一个Azure Web App来托管您的.NET Core 2.0网站,并且您的网站想要与您的移动应用程序建立连接。以下是一些方法,您可以参考它们:

  • 用于访问.Net Core Web应用程序前端的移动应用程序

    您可以在.Net Core网络应用中利用适用于Azure移动应用的JavaScript SDK来访问您的移动应用。您可以关注的详细信息here。此外,如果您的网站还启用了应用服务身份验证,则只需发送GET https://<your-netcore-webapp-name>.azurewebsites.net/.auth/me即可检索access_token,然后使用Client-managed authentication在前端使用您的移动应用进行日志记录你的netcore网站。

  • 用于访问.Net Core网络应用后端的移动应用

    我认为您的.Net Core网络应用还需要通过使用App Service身份验证/授权启用社交身份验证,并且在您网站的后端,您可以检索当前登录用户的access_token,然后您可以使用Client-managed authentication用于使用您的移动应用进行记录。日志记录请求如下所示:

    POST https://<your-mobile-app-name>.azurewebsites.net/.auth/login/<provider-name> Payload: {"access_token":"<the-access-token-for-the-specific-social-provider>"}

    此外,为了从App Service身份验证/授权(EasyAuth)检索用户记录的信息(包括access_token等),您可以按照issue进行操作。