我创建了一个基于Node.js的Web应用程序,运行在Azure Web应用程序中,我希望将其置于Azure Active Directory身份验证后面。激活“应用程序服务身份验证”后,登录过程正常工作,但是返回我的应用程序时,它只返回HTTP 431“请求头字段太大”。
为了验证不是我的应用程序的问题,我检查了Node.js的Azure Web应用程序示例,即使在激活AAD时,这个示例也会返回431。
重现步骤:
1. 创建新的Azure资源->Web应用程序 - 选择任何基于Node的运行时堆栈,例如Node 12 LTS - 选择任何操作系统 - 创建Web应用程序并等待部署完成
2. 创建一个简单的Web应用程序 - 示例:https://github.com/Azure-Samples/app-service-web-nodejs-get-started - 在Web服务上部署 - 到目前为止的结果:应用程序可以正常工作。
3. 在Web应用程序设置中,转到“身份验证/授权” - 将“应用程序服务身份验证”打开 - 选择Azure Active Directory - 选择Express管理模式,并在此过程中创建新的Azure AD应用程序 - 当请求未经身份验证时采取的操作选择“使用Azure AD登录” - 确认
结果:在使用浏览器打开Web应用程序URL时,它将显示登录过程,按照流程进行,一切似乎都正常工作,AAD返回应用程序,但此时它返回HTTP 431。
进一步测试: - 停用身份验证,一切正常 - 上传一个简单的.html文件而不是Node应用程序,在启用身份验证的情况下可以正常工作 - 使用restify和http进行测试
有什么想法吗?我错过了什么吗?
为了验证不是我的应用程序的问题,我检查了Node.js的Azure Web应用程序示例,即使在激活AAD时,这个示例也会返回431。
重现步骤:
1. 创建新的Azure资源->Web应用程序 - 选择任何基于Node的运行时堆栈,例如Node 12 LTS - 选择任何操作系统 - 创建Web应用程序并等待部署完成
2. 创建一个简单的Web应用程序 - 示例:https://github.com/Azure-Samples/app-service-web-nodejs-get-started - 在Web服务上部署 - 到目前为止的结果:应用程序可以正常工作。
3. 在Web应用程序设置中,转到“身份验证/授权” - 将“应用程序服务身份验证”打开 - 选择Azure Active Directory - 选择Express管理模式,并在此过程中创建新的Azure AD应用程序 - 当请求未经身份验证时采取的操作选择“使用Azure AD登录” - 确认
结果:在使用浏览器打开Web应用程序URL时,它将显示登录过程,按照流程进行,一切似乎都正常工作,AAD返回应用程序,但此时它返回HTTP 431。
进一步测试: - 停用身份验证,一切正常 - 上传一个简单的.html文件而不是Node应用程序,在启用身份验证的情况下可以正常工作 - 使用restify和http进行测试
有什么想法吗?我错过了什么吗?