2016-05-17 12 views
0

Я пишу консольное приложение .Net для создания Key Vault, но не могу найти класс/метод в сборке Microsoft.Azure.KeyVault, который позволяет создавать хранилища и установив в этом хранилище принципала обслуживания.Создание хранилища ключей Azure с использованием сборки .NET (Microsoft.Azure.KeyVault)

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

Благодаря

ответ

2

Класс, который вы ищете, это KeyVaultManagementClient в Microsoft.Azure. Управление .KeyVault namespace. Это определено в консоли управления KeyVault, которую вы можете получить от NuGet.

enter image description here

Основные части кода, чтобы сделать это, представлены ниже. Однако имейте в виду, что я сократил некоторые вещи (свойства, учетные данные и т. Д.), Которые вам нужно будет дополнительно определить и инициализировать. Если вы хотите увидеть полное решение, проверьте образцы в. NET Azure SDK, в частности, проект KeyVaultManagement.Tests.

 // The resource group to create the vault in. 
     const string resourceGroupName = "Vaults-Resource-Group"; 

     // The name of the vault to create. 
     const string vaultName = "web-app-01-vault"; 

     // Define access policies to keys and secrets (abbreviated just to illustrate...) 
     var accessPolicy = new AccessPolicyEntry 
     { 
      ApplicationId = sp, 
      PermissionsToKeys = new string[] { "all" }, 
      PermissionsToSecrets = new string[] { "backup", "create", "delete" } //etc. just to name a few 
     }; 

     // Define vault properties (abbreviated just to illustrate...) 
     VaultProperties vaultProps = new VaultProperties() 
     { 
      EnabledForTemplateDeployment = true, 
      AccessPolicies = new List<AccessPolicyEntry>() 
      { 
       accessPolicy 
      } 
     }; 

     // Initialize 'create parameters' to create the vault in "West US" 
     VaultCreateOrUpdateParameters vaultParams = new VaultCreateOrUpdateParameters(vaultProps, "westus"); 

     // Initialize an instance to the mgmt client 
     // NOTE: Need to initialize creds derived from SubscriptionCloudCredentials 
     KeyVaultManagementClient mgmtClient = new KeyVaultManagementClient(creds); 

     // Create the vault 
     mgmtClient.Vaults.CreateOrUpdateAsync(resourceGroupName, vaultName, vaultParams); 
+0

Thanks @Rick. Я могу создать/обновить Vault с помощью [KeyVaultManagementClient] (https://github.com/Azure/azure-sdk-for-net/blob/master/src/ResourceManagement/KeyVaultManagement/KeyVaultManagement.Tests/VaultOperationsTest.cs) – NKDev

0

По какой-то причине нет такой функциональности в клиентском SDK (или, по крайней мере, я не смог найти, что хорошо, даже пройдя через код, который размещен на Github репо из SDK). Для создания/обновления хранилища ключей существует REST API, поэтому вы можете создать его, используя это. Или PowerShell - можно выполнить Powershell from C#, и я попытался это сделать - он работает, но должен быть протестирован.

 Смежные вопросы

  • Нет связанных вопросов^_^