向 Azure 应用服务上运行的 Web 应用添加身份验证

了解如何为 Azure 应用服务上运行的 Web 应用启用身份验证,并仅限组织中的用户访问应用。

Diagram that shows user sign-in.

应用服务提供内置的身份验证支持,因此只需在 Web 应用中编写少量代码或根本无需编写代码,就能让用户登录和访问数据。 使用应用服务身份验证模块不是必须的,但使用该模块有助于简化应用的身份验证。 本文介绍如何将 Microsoft Entra ID 用作标识提供者来使用应用服务身份验证模块保护 Web 应用。

身份验证模块可通过 Azure 门户和应用设置进行启用和配置。 无需 SDK、特定语言或更改应用程序代码。支持多种身份提供程序,包括 Microsoft Entra ID、Microsoft Account、Facebook、Google 和 Twitter。 启用身份验证模块后,每个传入的 HTTP 请求将通过此模块,然后再由应用代码处理。​若要了解详细信息,请参阅 Azure 应用服务中的身份验证和授权

本教程介绍如何执行下列操作:

  • 为 Web 应用配置身份验证。
  • 仅限组织中的用户访问 Web 应用。

先决条件

如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

在应用服务上创建并发布一个 Web 应用

对于本教程,你需要一个部署到应用服务的 Web 应用。 可使用现有的 Web 应用,也可按照 ASP.NET CoreNode.jsPythonJava 快速入门创建新的 Web 应用并将其发布到应用服务。

无论是使用现有的 Web 应用还是创建新的 Web 应用,都请注意以下几项:

  • Web 应用名称
  • 在其中部署了 Web 应用的资源组名称

在本教程中,需要用到这些名称。

配置身份验证

现在,你有一个在应用服务上运行的 Web 应用。 接下来,为 Web 应用启用身份验证。 使用 Microsoft Entra ID 作为标识提供程序。 有关详细信息,请参阅为应用服务应用程序配置 Microsoft Entra 身份验证

Azure 门户菜单上,选择“资源组”,或在任意页面中搜索并选择“资源组” 。

在“资源组”中,查找并选择资源组。 在“概述”中,选择应用的管理页。

Screenshot that shows selecting your app's management page.

在应用程序的左侧菜单中,选择“身份验证”,然后单击“添加标识提供者”。

在“添加标识提供者”页上,选择“Microsoft”作为“标识提供者”以登录 Microsoft 和 Microsoft Entra 标识。

对于“租户类型”,请选择“员工”

对于“应用程序注册”>“应用程序注册类型”,请选择“新建应用程序注册”。

对于“应用程序注册”>“支持的帐户类型”,请选择“当前租户-单租户”。

在“应用服务身份验证设置”部分中,将“身份验证”设置为“要求身份验证”,并将“未验证请求”设置为“HTTP 302 Found 重定向:建议网站选用”。

在“添加标识提供者”页的底部,单击“添加”为 Web 应用启用身份验证。

Screenshot that shows configuring authentication.

现在,你已拥有受应用服务身份验证保护的应用。

注意

若要允许来自其他租户的帐户,请从“身份验证”边栏选项卡编辑“标识提供者”,将“颁发者 URL”更改为“https://login.microsoftonline.com/common/v2.0”。

验证对 Web 应用的受限访问

启用应用服务身份验证模块后,系统会在 Microsoft Entra 租户中创建应用注册。 应用注册的显示名称与 Web 应用的相同。 若要检查设置,请至少以应用程序开发人员的身份登录到 Microsoft Entra 管理中心,然后浏览到“标识”>“应用程序”>“应用注册”。 选择已创建的应用注册。 在“概述”中,验证“支持的帐户类型”是否设置为“仅限我的组织” 。

Screenshot that shows verifying access.

若要验证是否仅限组织中的用户访问应用,请在隐匿或私密模式下启动浏览器,然后转到 https://<app-name>.azurewebsites.net。 系统应该会将你定向到安全的登录页面,以验证未经身份验证的用户是否无法访问该站点。 以组织中用户的身份登录,获取对站点的访问权限。 你还可以启动新的浏览器并尝试使用个人帐户登录,以验证组织外部的用户是否没有访问权限。

清理资源

如果已完成本教程,并且不再需要 Web 应用或相关资源,请清理创建的资源

后续步骤