您如何在本地验证Azure App Services?

时间:2016-03-12 03:19:30

标签: azure azure-web-sites azure-api-apps azure-mobile-services azure-web-app-service

有很多关于如何配置给定Azure App Service实例的身份验证属性的教程:

Api Apps

Expanding App Service Authentication/Authorization

有针对以下内容配置Azure服务器端属性的指南:

AAD

FaceBook

Twitter

Google

Microsoft Account

我相信这些都是在我们的Azure App Service组件前面的服务器端网关上设置属性。这种方法很不错,因为只需将用户的浏览器指向〜/ .auth / login / XYZ即可启动登录流程。

但是,我无法弄清楚我应该如何在开发时对任何这些进行身份验证,通过localhost在我的PC上本地运行MVC应用和API应用。我没有在本地运行的网关。没有端点监听localhost / .auth / login / XYZ。

那么,这个故事是什么?你如何在那里进行身份验证?具体来说,您如何以这样的方式进行开发:无论您在本地需要做什么,都可以发布到您的Web和Api应用程序,并在Azure中的App Service的生态系统中使用auth体验?

2 个答案:

答案 0 :(得分:1)

您需要设置备用登录主机。您没有提到您正在使用的SDK,但通常由以下设置:

抱歉,我不知道iOS开发,但有a loginHost field in that SDK as well

答案 1 :(得分:1)

According to this,唯一的方法是编写一些dev-environment-only代码来伪造IPrincipals,其声明等同于生产中Azure环境提供的声明。

  
      
  • 在web.config中创建一个appSetting值,用于标识应用是否处于本地开发模式,例如:

    <add key="EnableLocalLogin" value="true" />
  •   
  • 将azure门户网站应用程序设置中的此值定义为false。该值将覆盖web.config中配置的值。

  •   
  • 创建另一个登录选项,仅在EnableLocalLogin appSetting为true时显示。
  •   
  • &#34;以本地开发者身份登录&#34;按钮只是调用一个动作方法,其中:      
        
    • 检查应用是否处于本地开发模式。
    •   
    • 如果是这样,构造具有适当声明的IPrincipal类的实例,并调用ASP.Net Identity系统将标识分配给当前上下文。
    •   
  •