我有一个 ASP.NET MVC 应用程序,作为 Azure Web 应用程序运行。
我使用预身份验证/EasyAuth,并且对于 5 个部署插槽它工作正常。他们每个人都有自己的 Azure AD 应用注册。
/.auth/login/aad/callback
但是生产站点(不是部署槽,应用程序的根目录)登录后在路径
处抛出错误:
我已将 Azure AD 应用程序清单与有效的清单进行了比较,唯一的区别是名称、描述和 URL - 正如预期的那样。
所以,基本上这是使用的应用注册的问题,是从另一个部署槽创建的。
即使Authentication / Authroization
网络应用程序设置为 Express,也选择了正确的应用程序注册 - 事实证明它没有将客户端密码从应用程序注册转移到网络应用程序(在我的情况下,它的密钥错误):
要修复它,您可以如上图所示切换到高级,打开关联的 App Registration 并创建一个新密钥:
在您保存之前不会显示密钥,并且只显示一次。复制它,并将其插入到 Web App 的 Client Secret 输入中。
保存所有刀片后,可以切换回 Express auth。设置和密钥将保留。
由于我无法发表评论,因此我将添加我的案例作为答案,比我必须发表评论更详细。
在作为 Azure App Service Web App 运行的 ASP.NET MVC 应用程序中,我收到了来自 Easyauth 的完全相同的错误消息。
最初的错误消息只是“页面无法显示,因为发生了内部服务器错误”。通过 FTP 和/或 Visual Studio Server Explorer 和/或 Cloud Explorer,我可以在从应用服务日志设置详细错误消息后检查真正的错误页面。这些错误与 MartinHN 使用 Kudu 时的错误相同。
因此,在更详细的错误中,主要显示的 500.74 错误最初将我指向错误的方向 (MFA)。但是错误消息表明发生内部服务器错误的请求网址(.auth/login/aad/callback)让我想到了这个问题。
在我的情况下,虽然我已经在 App Services Active Directory 身份验证中选择了高级配置。并且客户端密钥不仅仅是错误的。原来,客户端密码已过期。但这对我来说并不明显,因为我无法访问 AAD。我不得不联系一个单独的广告团队来检查这些秘密。
因此,过期的客户端密钥(密钥)也可能导致同样的错误。