0

Я хочу, чтобы загрузить файл на счет Azure Storage, которая автоматически генерируется (В рамках Service Fabric группы ресурсов, с известным именем), с помощью C#.Как получить ключ Azure Storage Account

Мне нужно, чтобы загрузить файл в качестве сгустка, чтобы позволить ему быть общедоступным.

Учебник Get started with Azure Blob storage using .NET использует строку соединения, хранящуюся в файле App.config. Поскольку я хочу использовать созданную учетную запись хранилища, я не могу использовать такой метод.

Предпочитаемый метод использует AD пользователя каким-то образом, чтобы получить ключ от учетной записи хранилища.

Эта ссылка: Get Storage Account Key показывает, как получить ее с запросом на отдых, поэтому я предполагаю, что есть способ сделать это, используя код C#.

Мне кажется, что решение использует StorageManagementClient class, у которого есть свойство StorageAccounts, хотя я не смог найти способ его аутентификации с использованием AzureAd.

Я попытался с помощью AuthenticationContext.AcquireTokenAsync и aquiring маркера для только различных ресурсов, например: https://management.azure.com/, но при использовании маркеров, я получаю следующее сообщение об ошибке:

Microsoft.WindowsAzure.CloudException: AuthenticationFailed: The JWT token does not contain expected audience uri 'https://management.core.windows.net/'. 

При использовании ресурса https://management.core.windows.net/ я получаю другие ошибка:

Microsoft.WindowsAzure.CloudException: ForbiddenError: The server failed to authenticate the request. Verify that the certificate is valid and is associated with this subscription. 

Есть ли другой ресурс, который я должен использовать, другой метод или, возможно, это невозможно?

+0

Просьба поделиться с вами кодом, который вы используете. Также поделитесь, если вы входите в систему как самостоятельно, чтобы приобрести токен. Наконец, для вашей второй ошибки, пожалуйста, посмотрите эту тему: http://stackoverflow.com/questions/35190866/error-making-azure-management-library-api-call-when-authenticating-with-azure-ac/35194706#35194706 , НТН. –

+0

@ Bobcat100 Устранили эту проблему? Если у вас все еще есть проблемы с этим, не стесняйтесь, дайте мне знать. –

ответ

2

Чтобы использовать Storage Service Management REST, нам необходимо указать ресурс до https://management.core.windows.net/ вместо https://management.azure.com/. И это использует классическую учетную запись хранилища.

https://management.azure.com/ является новой конечной точкой для Azure REST service. Если вы хотите обрабатывать новую учетную запись хранилища, вам необходимо использовать этот ресурс. И ниже приведен пример с использованием нового Azure REST для справки:

POST: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resrouceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}/listKeys?api-version=2016-01-01 
Authorization: Bearer {token}