启用托管标识后 Azure 应用服务停止工作

Azure App Service stops working after enabling Managed Identity

我已经在 Azure 应用服务中部署了一个 Docker 容器。我有一个 public API 可以调用,returns "Hello world"。

我想在我的应用程序中使用 Azure Managed Identity,所以我在 Azure 门户中启用了它。我启用了 "System assigned" 一个,遵循这个文档:https://docs.microsoft.com/en-us/azure/app-service/overview-managed-identity?tabs=dotnet

启用托管身份后,我的网络应用程序停止工作。重新启动它没有帮助。禁用托管身份可以修复它。

如果我尝试调用我的 API,我会收到错误消息: ":( 应用程序错误 如果您是应用程序管理员,则可以访问诊断资源。"

不仅仅是我的 API,整个应用程序都停止工作了。如果我尝试导航到 https://[myApp].azurewebsites.net,我会遇到同样的错误。如果没有托管身份,我在导航到该地址时收到“404 页面未找到”。

有人遇到过这种情况吗?如何解决?

更新: 我无法用示例 "Static site" 容器重现它,所以它必须与我们部署的容器有某种关系。但我不明白是什么导致了它 - 启用托管身份是否会以某种方式改变(减少)应用程序可以做的事情?

更新 2: 该容器包含一个 Go 应用程序,该应用程序使用 Azure SDK 通过 AAD 进行身份验证。在我们看来,如果启用了托管身份,这种身份验证尝试会使整个应用程序在启动期间崩溃。我们的目的是使用 Managed Identity 从 Azure Key Vault 获取秘密。然后使用此机密通过 AAD 进行身份验证。现在我们的应用程序甚至不尝试与托管身份服务对话。

将评论总结成回复,让其他人更清楚地找到解决方案。

当我们将 MSI_SECRET 定义为空白(存在,但空白;不存在也可以)时,SDK 崩溃了。

因此定义 MSI_SECRET 值,因为它在 KUDU 环境中显示。