这个问题参考了这篇文章:
https://docs.microsoft.com/en-us/azure/app-service/app-service-managed-service-identity
我试图弄清楚如何使用为我的天蓝色应用程序生成的服务主体进行模拟以在本地工作。
我关注了这篇文章,当我将 azure 函数部署到 azure 并从那里运行它时,我能够成功使用 MSI_ENDPOINT 和 MSI_SECRET 成功获取令牌。但是,当我在本地运行相同的部署时,它会失败。我使用完全相同的 MSI_SECRET 并将 MSI_ENDPOINT 更改为我用于天蓝色函数端点的域。
示例:在天蓝色的 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 上加载的工作参数完全相同。
关于如何解决这个问题的任何建议,以便我可以在本地运行和测试?
将 Microsoft.Azure.Services.AppAuthentication 库用于 .NET 的 .NET 应用程序和函数,使用托管标识的最简单方法是通过 Microsoft.Azure.Services.AppAuthentication 包。此库还允许您使用 Visual Studio、Azure CLI 或 Active Directory 集成身份验证中的用户帐户在开发计算机上本地测试代码。有关此库的本地开发选项的更多信息,请参阅 Microsoft.Azure.Services.AppAuthentication 参考。本节向您展示如何开始使用代码中的库。将 Microsoft.Azure.Services.AppAuthentication 和 Microsoft.Azure.KeyVault NuGet 包的引用添加到您的应用程序。
但是,该库仅在我未使用的 .net 中可用,并且没有真正解释您将如何通过 REST 调用进行操作。
谢谢!