6

我有一个 ASP.NET MVC 应用程序,作为 Azure Web 应用程序运行。

我使用预身份验证/EasyAuth,并且对于 5 个部署插槽它工作正常。他们每个人都有自己的 Azure AD 应用注册。

/.auth/login/aad/callback但是生产站点(不是部署槽,应用程序的根目录)登录后在路径 处抛出错误:授权前回调失败

我已将 Azure AD 应用程序清单与有效的清单进行了比较,唯一的区别是名称、描述和 URL - 正如预期的那样。

使用 Kudu 查看错误,似乎来自EasyAuthModule在此处输入图像描述

4

2 回答 2

7

所以,基本上这是使用的应用注册的问题,是从另一个部署槽创建的。

即使Authentication / Authroization网络应用程序设置为 Express,也选择了正确的应用程序注册 - 事实证明它没有将客户端密码从应用程序注册转移到网络应用程序(在我的情况下,它的密钥错误): 在此处输入图像描述

要修复它,您可以如上图所示切换到高级,打开关联的 App Registration 并创建一个新密钥: 在此处输入图像描述

在您保存之前不会显示密钥,并且只显示一次。复制它,并将其插入到 Web App 的 Client Secret 输入中。

保存所有刀片后,可以切换回 Express auth。设置和密钥将保留。

于 2017-12-13T12:21:23.133 回答
2

由于我无法发表评论,因此我将添加我的案例作为答案,比我必须发表评论更详细。

在作为 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。我不得不联系一个单独的广告团队来检查这些秘密。

因此,过期的客户端密钥(密钥)也可能导致同样的错误。

于 2019-06-18T13:13:31.537 回答