首页 > 解决方案 > 启用托管标识后 Azure 应用服务停止工作

问题描述

我在 Azure 应用服务中部署了一个 Docker 容器。我有一个可以调用的公共 API,它返回“Hello world”。

我想在我的应用程序中使用 Azure Managed Identity,因此我在 Azure 门户中启用了它。我按照以下文档启用了“系统分配”:https ://docs.microsoft.com/en-us/azure/app-service/overview-managed-identity?tabs=dotnet

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

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

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

有没有人遇到过这个?如何解决?

更新:我无法使用示例“静态站点”容器重现它,因此它必须与我们部署的容器有某种关联。但我不明白是什么原因导致它 - 启用托管身份是否会以某种方式改变(减少)应用程序可以做的事情?

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

标签: azureazure-web-app-serviceazure-managed-identity

解决方案


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

当我们定义MSI_SECRET为空白(存在,但空白;不存在很好)的那一刻,SDK 崩溃。

所以定义MSI_SECRET在 KUDU 环境中显示的值。


推荐阅读