2016-05-28 9 views
0

Как установить секреты в хранилище ключей Azure без использования PowerShell. Мы используем Azure Key Vault для безопасного хранения строк подключения и некоторых других секретов приложений. Мы можем добавлять секреты с помощью сценариев PowerShell, но мне было интересно, есть ли другой способ добавить ключи в Azure KeyVault, предпочтительно используя API. Нам действительно нужно предоставить инструмент управления, с помощью которого администраторы приложений могут добавлять/изменять секреты в ключевом хранилище.Установка ключей в хранилище ключей Azure без PowerShell

ответ

1

Теперь вы можете добавлять ключи и секреты через Azure Portal без использования PowerShell.

1

Microsoft предоставляет для этого REST API. Вы можете это проверить here.

Ниже приведен сценарий PowerShell, в котором показано, как создать ключ с этим API.

Add-Type -Path 'C:\Program Files\Microsoft Azure Active Directory Connect\Microsoft.IdentityModel.Clients.ActiveDirectory.dll' 

$tenantID = "<your tenant ID>" 
$loginEndpoint = "https://login.windows.net/" 

# the common redirect URI and client ID 
$redirectURI = New-Object System.Uri ("urn:ietf:wg:oauth:2.0:oob") 
$clientID = "1950a258-227b-4e31-a9cf-717495945fc2" 

$resource = "https://vault.azure.net" 

$authString = $loginEndpoint + $tenantID 

$authenticationContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext ($authString, $false) 

$promptBehaviour = [Microsoft.IdentityModel.Clients.ActiveDirectory.PromptBehavior]::Auto 

$userIdentifierType = [Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifierType]::RequiredDisplayableId 

$userIdentifier = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifier ("<your Azure account>", $userIdentifierType) 

$authenticationResult = $authenticationContext.AcquireToken($resource, $clientID, $redirectURI, $promptBehaviour, $userIdentifier); 

# construct authorization header for the REST API. 
$authHeader = $authenticationResult.AccessTokenType + " " + $authenticationResult.AccessToken 
$headers = @{"Authorization"=$authHeader; "Content-Type"="application/json"} 

$key = Invoke-RestMethod -Method POST -Uri "https://<your key vault>.vault.azure.net/keys/<key name>/create?api-version=2015-06-01" -Headers $headers -Body '{"kty": "RSA","attributes": {"enabled": true}}' 

Я не знаю, что программирующий язык вы используете, поэтому я использую PowerShell, потому что это легко проверить. Сценарий переводится из кода C#, поэтому его можно легко перевести на C#. Если вам не нравится поведение подсказок, вы можете использовать учетные данные с защищенной строкой. Для другого языка программирования вы можете использовать соответствующий ADAL. Если ADAL недоступен для этого языка программирования, вы можете использовать OAuth2.

+0

Есть ли SDK для этого? –

+0

Да, есть SDK для SDK для Azure Key Vault. См. [Документация] (https://msdn.microsoft.com/en-us/library/azure/mt430941.aspx) –

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

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