【发布时间】:2020-07-18 10:36:53
【问题描述】:
我创建了一个基于 Node.js 的 Web 应用程序,在 Azure Web 应用程序中运行,我想将其置于 Azure Active Directory 身份验证之后。激活“应用服务身份验证”后,登录过程正常,但是返回我的应用后,它只返回一个 HTTP 431“请求标头字段太大”。
为了验证它不是我的应用程序,我检查了 Node.js 的 Azure Web 应用程序示例,甚至在激活 AAD 时返回 431。
重现步骤:
- 创建新的 Azure 资源 -> Web 应用
- 选择任何基于节点的运行时堆栈,例如节点 12 LTS
- 选择任何操作系统
- 创建 Web 应用并等待部署完成
- 创建一个简单的 Web 应用程序
- 示例:https://github.com/Azure-Samples/app-service-web-nodejs-get-started
- 在 Web 服务上部署
- 目前的结果:应用正常运行。
- 在网络应用程序设置中,转到“身份验证/授权”
- 将“应用服务身份验证”设置为“开启”
- 选择 Azure Active Directory
- 选择快速管理模式并在此过程中创建一个新的 Azure AD 应用
- 作为“请求未通过身份验证时采取的操作”选择“使用 Azure AD 登录”
- 确认
结果:使用浏览器打开 Web 应用程序 URL 时,它将显示登录过程,在此过程之后一切似乎都正常,AAD 返回到应用程序,但是此时它返回 HTTP 431。
进一步测试:
- 停用身份验证,一切都恢复正常
- 在启用身份验证的情况下,上传简单的 .html 文件而不是 Node 应用可以正常工作
- 用 restify 和 http 测试
有什么想法吗?我错过了什么吗?
【问题讨论】:
标签: node.js azure azure-active-directory azure-web-app-service azure-webapps