Ранее в этом году я создал функцию Azure, которая использовала API Azure REST для программного копирования базы данных.Это сработало, но теперь по какой-то причине перестало работать.
Для проверки подлинности код в функции Azure получает токен аутентификации ...
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var accessToken = await azureServiceTokenProvider.GetAccessTokenAsync("https://management.azure.com/");
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
Было что-то еще, что мы сделали впортал Azure, чтобы дать разрешения функции Azure для этого.Я помню, как выбирал саму функцию Azure из выпадающего списка (я думаю на одной из Access Control (IAM)
панелей).К сожалению, я не могу вспомнить, что я сделал.
Это внезапно перестало работать, и функция Azure не может сказать ...
Parameters: Connectionstring: [No connection string specified], Resource: https://management.azure.com/, Authority: . Exception Message: Tried the following 4 methods to get an access token, but none of them worked.
Parameters: Connectionstring: [No connection string specified], Resource: https://management.azure.com/, Authority: . Exception Message: Tried to get token using Managed Service Identity. Unable to connect to the Managed Service Identity (MSI) endpoint. Please check that you are running on an Azure resource that has MSI setup.
Parameters: Connectionstring: [No connection string specified], Resource: https://management.azure.com/, Authority: . Exception Message: Tried to get token using Visual Studio. Access token could not be acquired. Visual Studio Token provider file not found at "D:\local\LocalAppData\.IdentityService\AzureServiceAuth\tokenprovider.json"
Parameters: Connectionstring: [No connection string specified], Resource: https://management.azure.com/, Authority: . Exception Message: Tried to get token using Azure CLI. Access token could not be acquired. 'az' is not recognized as an internal or external command,
operable program or batch file.
Parameters: Connectionstring: [No connection string specified], Resource: https://management.azure.com/, Authority: https://login.microsoftonline.com/common. Exception Message: Tried to get token using Active Directory Integrated Authentication. Access token could not be acquired. get_user_name_failed: Failed to get user name
Inner Exception : The format of the specified domain name is invalid
Стоп вызовов показывает, что он вызывает ошибку в AzureServiceTokenProvider.GetAccessTokenAsync()
из моего приведенного выше фрагмента кода.
Я ничего не изменил в коде, но возможно, что кто-то еще в команде воссоздает материал в Azure - вызывая то, что мы делали на портале (упомянуто выше), вмне нужно переделать.
Я также не могу найти статьи, которые я бы изначально следовал при этом.К какой бы панели IAM я ни шел (будь то сама подписка или экземпляр сервера sql), я могу выбрать Assign assess to Function App
, но в ней всегда указано No Function App in this resource group can be assigned access.
.
Есть идеи, что мне не хватает?Как я могу разрешить приложению-функции отправлять REST-запросы менеджера ресурсов для управления базой данных?