2016-12-05 1 views
0

Мне нужно программно разрешить AzureKeyVault и ближайший я получил к нему команду Set-AzureRmKeyVaultAccessPolicy powershell.Есть ли эквивалент Set-AzureRmKeyVaultAccessPolicy в REST API или .Net SDK?

Есть ли. SDK для этого или REST API?

+0

Для дальнейшего использования, PowerShell использует REST API. Если для него есть команда PS, есть * определенно * конечная точка REST. – juunas

ответ

0

here you go, вы, вероятно, могли бы найти что-то подобное для .NET SDK.

Кроме того, если вы Set-AzureRmKeyVaultAccessPolicy -debug вы найдете необходимую информацию:

DEBUG: ============================ HTTP REQUEST ============================ 

HTTP Method: 
PUT 

Absolute Uri: 
https://management.azure.com/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.KeyVault/vaults/xxx?api-version=2015-06-01 

Body {Omitted} 

редактировать: Для дальнейшего использования, PowerShell использует REST API-интерфейсы. Если для него есть команда PS, определенно есть конечная точка REST. По Junnas

0

Мы можем использовать Microsoft Azure Key Vault Management, чтобы сделать это. Это Предварительный просмотр версия. Мы можем создать или обновить Key Vault с помощью функции keyVaultManagementClient.Vaults.CreateOrUpdateAsync(). Я сделал демо для него. Мои шаги подробно являются следующие:

Предпосылки:

реестра приложение в Azure AD и создать принцип обслуживания для него. Более подробные шаги см. В document.

Шаги:

1.Create С # консольное приложение

2.Add демо-код в проекте

using System; 
using System.Collections.Generic; 
using Microsoft.Azure.Management.KeyVault; 
using Microsoft.Azure.Management.KeyVault.Models; 
using Microsoft.IdentityModel.Clients.ActiveDirectory; 
using Microsoft.Rest; 

var subscriptionId = "Your Subscription Id"; 
var clientId = "Your Registry Application Id"; 
var tenantId = "Your tenant Id"; 
var secretKey = "Application secret Key"; 
var objectId = "Registry Application object Id" 
var clientCredential = new ClientCredential(clientId, secretKey); 
var context = new AuthenticationContext("https://login.windows.net/" + tenantId); 
const string resourceGroupName = "tom"; 
// The name of the vault to create. 
const string vaultName = "TomNewKeyVaultForTest"; 

var accessPolicy = new AccessPolicyEntry 
{ 
    ApplicationId = Guid.Parse(clientId), 
    TenantId = Guid.Parse(tenantId), 
    Permissions = new Permissions 
    { 
     Keys = new List<string> { "List","Get" }, 
     Secrets = new List<string> { "All" } 
     }, 
     ObjectId = Guid.Parse(objectId) 
    }; 

    VaultProperties vaultProps = new VaultProperties 
    { 
     EnabledForTemplateDeployment = true, 
     TenantId = Guid.Parse(tenantId), 
     AccessPolicies = new List<AccessPolicyEntry> 
     { 
      accessPolicy 
     } 
    }; 
    Microsoft.Rest.ServiceClientCredentials credentials = new TokenCredentials(token); 
    VaultCreateOrUpdateParameters vaultParams = new VaultCreateOrUpdateParameters("eastasia", vaultProps); 

    KeyVaultManagementClient keyVaultManagementClient= new KeyVaultManagementClient(credentials) 
    { 
     SubscriptionId = subscriptionId 
    }; 

    var result = keyVaultManagementClient.Vaults.CreateOrUpdateAsync(resourceGroupName, vaultName, vaultParams).Result; 

3.Debug демонстрационная

enter image description here

4.Проверьте созданный или обновленный KeyVault в лазурном портале

enter image description here

Больше информации SDK пожалуйста, обратитесь к файлу package.config:

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Hyak.Common" version="1.0.2" targetFramework="net452" /> 
    <package id="Microsoft.Azure.Common" version="2.1.0" targetFramework="net452" /> 
    <package id="Microsoft.Azure.Common.Dependencies" version="1.0.0" targetFramework="net452" /> 
    <package id="Microsoft.Azure.Management.KeyVault" version="2.0.0-preview" targetFramework="net452" /> 
    <package id="Microsoft.Bcl" version="1.1.9" targetFramework="net452" /> 
    <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net452" /> 
    <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net452" /> 
    <package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="2.28.3" targetFramework="net452" /> 
    <package id="Microsoft.Net.Http" version="2.2.22" targetFramework="net452" /> 
    <package id="Microsoft.Rest.ClientRuntime" version="2.3.1" targetFramework="net452" /> 
    <package id="Microsoft.Rest.ClientRuntime.Azure" version="3.3.1" targetFramework="net452" /> 
    <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net452" /> 
</packages> 
Смежные вопросы