【发布时间】:2019-03-11 15:27:06
【问题描述】:
本题参考文章:
https://docs.microsoft.com/en-us/azure/app-service/app-service-managed-service-identity
我试图弄清楚如何使用为我的天蓝色应用程序生成的服务主体进行模拟以在本地工作。
我关注了这篇文章,当我将 azure 函数部署到 azure 并从那里运行它时,我能够成功使用 MSI_ENDPOINT 和 MSI_SECRET 成功获取令牌。但是,当我在本地运行相同的部署时,它会失败。我使用完全相同的 MSI_SECRET 并将 MSI_ENDPOINT 更改为我用于 Azure 函数端点的域。
示例:在 Azure 上,MSI_ENDPOINT = http://127.0.0.1:41831 本地为 http://localhost:7071 (http://0.0.0.0:7071
但是,当我在本地运行它时,我收到一个 404 错误的请求。请求是http://0.0.0.0:7071/MSI/token?resource=https://vault.azure.net&api-version=2017-09-01,标头中有秘密。除了 MSI_ENDPOINT 之外,与在 azure 上加载的工作参数完全相同。
关于如何解决这个问题以便我可以在本地运行和测试的任何建议?
使用适用于 .NET 的 Microsoft.Azure.Services.AppAuthentication 库 对于 .NET 应用程序和功能,使用 托管标识是通过 Microsoft.Azure.Services.AppAuthentication 包。这个图书馆将 还允许您在开发机器上本地测试代码, 在 Visual Studio、Azure CLI 或 Active 中使用您的用户帐户 目录集成身份验证。有关本地发展的更多信息 此库的选项,请参阅 Microsoft.Azure.Services.AppAuthentication 参考。这个部分 向您展示如何开始使用代码中的库。 将 Microsoft.Azure.Services.AppAuthentication 和 Microsoft.Azure.KeyVault NuGet 包的引用添加到您的应用程序。
但是,这个库仅在我没有使用的 .net 中可用,并且没有真正解释您将如何通过 REST 调用来实现它。
谢谢!
【问题讨论】:
标签: azure azure-management service-principal