访问我的 Azure Web 应用程序时没有登录屏幕

问题描述 投票:0回答:1

我将 ASP.NET Web 应用程序发布到 Azure,但没有看到登录屏幕。

当我将限制访问选项设置为允许未经身份验证的访问时,我可以调用 API 并检索数据。我已遵循本指南:https://learn.microsoft.com/en-us/azure/app-service/scenario-secure-app-authentication-app-service?tabs=workforce-configuration#dnl-note 其中声明“您应该被定向到安全的登录页面,验证未经身份验证的用户是否不允许访问该网站。”就我而言,此登录页面从未显示,相反,我只看到一个空白页面,其中包含文本“您无权查看此目录或页面。”

我是否遗漏或忘记了什么?

最小可重现示例

创建网络应用程序

  • 打开 Visual Studio,然后选择创建新项目。
  • 在创建新项目中,找到并选择 ASP.NET Core Web API,然后选择下一步。
  • 在配置新项目中,将应用程序命名为 WebAppApi,然后选择下一步。
  • 其他信息:框架:.NET 8.0,身份验证类型:无,配置 HTTPS,不使用顶级语句,使用控制器
  • 选择创建。
  • 运行应用程序
  • 浏览器现在应该显示通过网络应用程序检索到的一些数据。

创建 Azure Web 应用程序

  • 转到 Azure 门户
  • 转到网络服务
  • 选择创建 Web 应用程序
  • 将 Web 应用程序命名为“WebAppApi”。
  • 使用设置:运行时堆栈:.NET 8,定价计划:免费 F1
  • 启用基本身份验证
  • 否则使用默认设置并创建。
  • 部署后,转到下载发布配置文件

发布网络应用程序

  • 右键单击项目 -> 发布
  • 导入下载的发布配置文件
  • 新闻发布
  • 现在您可以转到 Web 应用程序概述页面中的默认域链接并添加“/weatherforecast”,您应该看到与在 Visual Studio 中运行它相同的数据

这非常有效,只是任何人都可以访问此 API。我想使用 Microsoft 身份验证将访问限制为仅限我组织内的用户。

将应用程序身份验证添加到在 Azure 应用服务上运行的 Web 应用程序

https://learn.microsoft.com/en-us/azure/app-service/scenario-secure-app-authentication-app-service?tabs=workforce-configuration#dnl-note

  • 在 Azure Web 应用程序中,转到“设置 - 身份验证”
  • 添加身份提供商
  • 选择微软
  • 选择劳动力配置
  • 选择创建新应用程序注册
  • 名称:WebAppApi
  • 账户类型:当前租户
  • 仅允许来自此应用程序本身的请求
  • 允许任何身份的请求
  • 仅允许来自发行人租户的请求
  • 需要身份验证
  • HTTP 401 Unauthorized:推荐用于 API
  • 检查令牌存储框
  • 选择添加

验证访问权限

  • 转到网络应用程序概述页面中的默认域链接并添加“/weatherforecast”(与之前相同)
  • 您将看到一条消息“您无权查看此目录或页面。”而不是指南中提到的登录页面
azure authentication azure-web-app-service
1个回答
0
投票

当您有 API 项目时,您不会看到登录页面。

API 期望在您进行调用时在 HTTP 标头中发送身份验证信息。

© www.soinside.com 2019 - 2024. All rights reserved.