从网站到 Azure 移动应用服务的身份验证

authenticate from a website to an azure mobile app service

我有一个与我的(Cordova 和 Xamarin)移动应用程序一起使用的 Azure 移动应用程序服务。移动应用程序服务的 URL 是 https://gonzo.azurewebsites.net/(不是真正的 URL)。我想创建一个连接到我的 Azure 移动应用服务的网站(ASP.NET Core 2.0 Web 应用程序),就像我的应用程序一样。我尝试将其发布到奇闻趣事 URL,但这覆盖了我的移动应用程序服务,因此我不得不恢复它。我很想知道是否有办法真正做到这一点。 我的下一步是创建网站并使用不同的 URL https://kermit.azurewebsites.net/. I use social authentication for my app mobile service. When I debug it locally against localhost, everything works perfectly. The problem that I’m running into is that when I try to login from the published website, regardless of the auth provider (facebook, Microsoft, google), instead of getting to the login UI supplied by the login provider, I get a 403 with the URL looking something like this: https://gonzo.azurewebsites.net/.auth/login/facebook/callback?code=long-code.

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

I want to create a website (ASP.NET Core 2.0 Web App) that connects to my Azure Mobile App service, just like my apps do. I tried publishing it to the gonzo URL but that overwrote my mobile app service and thus I had to restore it. I’d love to know if there is a way to actually make that work.

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

The problem that I’m running into is that when I try to login from the published website, regardless of the auth provider (facebook, Microsoft, google), instead of getting to the login UI supplied by the login provider, I get a 403 with the URL looking something like this: 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 网络应用程序的前端访问移动应用程序

    您可以在 .Net Core Web 应用程序中利用适用于 Azure 移动应用程序的 JavaScript SDK 来访问您的移动应用程序。您可以按照 here. Additionally, if your website would also enable the app service authentication, you could just send GET https://<your-netcore-webapp-name>.azurewebsites.net/.auth/me to retrieve the access_token, then use the 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), you could follow this .

  • 中检索用户记录的信息(包括 access_token 等)