【问题标题】:authenticate from a website to an azure mobile app service从网站验证到 azure 移动应用服务
【发布时间】:2018-07-14 17:22:44
【问题描述】:

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

我认为可以通过在 CORS 中的 Azure 移动应用服务中允许 kermit 来源来解决此问题。我什至尝试将 CORS 设置为允许所有主机 (*),但这并没有什么不同。知道如何完成这项工作吗?

【问题讨论】:

    标签: authentication mobile azure-web-app-service azure-mobile-services


    【解决方案1】:

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

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

    我遇到的问题是,当我尝试从已发布的网站登录时,无论身份验证提供商(facebook、Microsoft、google)如何,我都没有访问登录提供商提供的登录 UI,而是得到一个 403,其 URL 看起来像这样: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 应用程序来托管您的 NET Core 2.0 网站,并且您的网站想要与您的移动应用程序连接。以下是一些方法,您可以参考:

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

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

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

      我假设您的 .Net Core Web 应用还需要通过使用应用服务身份验证/授权来启用社交身份验证,并且在您网站的后端,您可以检索当前登录用户的 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>"}

      此外,要从应用服务身份验证/授权 (EasyAuth) 中检索用户登录信息(包括 access_token 等),您可以关注此issue

    【讨论】:

    • 谢谢!我将尝试多个虚拟目录的方法。通过将我的新网站添加到移动服务的“身份验证/授权”选项卡中的“允许的外部重定向 URL”列表中,我修复了使用不同 URL 的 403 问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2015-11-18
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    相关资源
    最近更新 更多