您如何在本地对Azure App Services进行身份验证?

Nat*_*son 5 azure azure-web-sites azure-mobile-services azure-api-apps azure-web-app-service

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

Api应用

扩展应用程序服务认证/授权

有用于配置Azure服务器端属性的指南:

AAD

脸书

推特

谷歌

微软帐户

我相信所有这些都在位于Azure应用服务组件前面的服务器端网关上设置属性。这种方法很好,因为您只需将用户的浏览器定向到〜/ .auth / login / XYZ即可启动登录流程。

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

那么,这是什么故事呢?您如何在那认证?具体来说,您如何发展,以便将需要在本地进行的任何操作都发布到Web和Api Apps,并在Azure的App Service生态系统中进行身份验证经验的工作?

sha*_*tor 3

据此,唯一的方法是编写一些仅用于开发环境的代码来伪造,其IPrincipals声明与生产中的 Azure 环境提供的声明相同。

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

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

  • 创建另一个仅在 EnableLocalLogin appSetting 为 true 时显示的登录选项。
  • “以本地开发人员身份登录”按钮只是调用一个操作方法,该方法:
    • 检查应用程序是否处于本地开发模式。
    • 如果是,则使用适当的声明构造 IPrincipal 类的实例,并调用 ASP.Net 标识系统将标识分配给当前上下文。