【发布时间】:2020-08-28 17:45:21
【问题描述】:
我正在开发一个使用密钥保管库的应用程序。该应用程序是用 .NET Core 3.1 (ASP.NET) 编写的,我本地机器上的应用程序运行良好。我将该应用程序部署为 azure 应用程序服务,现在我收到“HTTP 错误 500.30 - ANCM 进程中启动失败”错误消息。我检查了应用程序事件日志,它说:
“用户、组或应用程序 'appid={appId};oid={objectId};iss={url}' 没有秘密获取密钥库 '{keyvault-name};location=westeurope' 的权限。如需解决此问题的帮助,请参阅https://go.microsoft.com/fwlink/?linkid=2125287 ","innererror":{"code":"AccessDenied"}}}"
理论上,在我为我的应用程序添加了访问权限的密钥库设置中,它应用了与我的本地开发环境相同的访问策略。基于 MS 教程,我也在我的开发环境上进行了配置。让我担心的一件事是环境变量。在应用程序/配置部分下,我添加了“AZURE_CLIENT_ID”、“AZURE_CLIENT_SECRET”和“AZURE_TENANT_ID”,就像我使用 setx AZURE 为本地开发环境所做的那样...,但这也无济于事。
我对本地应用程序和部署的应用程序使用相同的命令来设置权限:
az keyvault set-policy --name "{keyvault-name}" --object-id "{object-id}" --secret-permissions 获取列表
我尝试使用从异常中得到的对象 id 执行上述命令,但它仍然无法正常工作。
(顺便说一句,为什么该对象 ID 可能与我在属于我的应用程序的身份窗格下获得的对象 ID 不同?)
感谢您的帮助,或者欢迎任何想法。
【问题讨论】:
-
尝试使用 Azure 门户授予访问权限。在我看来,您在 CLI 中使用了错误的 id
标签: azure azure-keyvault