Как установить секреты в хранилище ключей Azure без использования PowerShell. Мы используем Azure Key Vault для безопасного хранения строк подключения и некоторых других секретов приложений. Мы можем добавлять секреты с помощью сценариев PowerShell, но мне было интересно, есть ли другой способ добавить ключи в Azure KeyVault, предпочтительно используя API. Нам действительно нужно предоставить инструмент управления, с помощью которого администраторы приложений могут добавлять/изменять секреты в ключевом хранилище.Установка ключей в хранилище ключей Azure без PowerShell
0
A
ответ
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.
Есть ли SDK для этого? –
Да, есть SDK для SDK для Azure Key Vault. См. [Документация] (https://msdn.microsoft.com/en-us/library/azure/mt430941.aspx) –