Этот вопрос относится к статье:
https://docs.microsoft.com/en-us/azure/app-service/app-service-managed-service-identity
Я пытаюсь понять, как я могу смоделировать использование принципала службы, созданного для моего приложения Azure, чтобы оно работало локально.
Я следил за статьей, и когда я развертываю функцию azure в Azure и запускаю ее оттуда, я могу успешно использовать MSI_ENDPOINT и MSI_SECRET для успешного получения токена. Однако когда я запускаю то же развертывание локально, это не удается. Я использую тот же самый MSI_SECRET и меняю MSI_ENDPOINT на домен, который я использую для конечной точки функции 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 с секретом в заголовке. Точно такие же параметры с рабочим, загруженным на Azure, за исключением MSI_ENDPOINT.
Есть какие-нибудь советы о том, как решить эту проблему, чтобы я мог запускать и тестировать локально?
Используя библиотеку Microsoft.Azure.Services.AppAuthentication для .NET для приложений и функций .NET, самый простой способ работы с управляемым удостоверением - через пакет Microsoft.Azure.Services.AppAuthentication. Эта библиотека также позволит вам тестировать свой код локально на вашем компьютере разработки, используя вашу учетную запись пользователя из Visual Studio, Azure CLI или встроенной аутентификации Active Directory. Дополнительные сведения о вариантах локальной разработки с помощью этой библиотеки см. В справочнике Microsoft.Azure.Services.AppAuthentication. В этом разделе показано, как начать работу с библиотекой в вашем коде. Добавьте в свое приложение ссылки на пакеты NuGet Microsoft.Azure.Services.AppAuthentication и Microsoft.Azure.KeyVault.
Однако эта библиотека доступна только в .net, которую я не использую, и на самом деле не объясняет, как это сделать с помощью вызова REST.
Спасибо!