Tillåt appar att komma åt Azure Stack Hub Key Vault hemligheter
Stegen i den här artikeln beskriver hur du kör exempelappen HelloKeyVault som hämtar nycklar och hemligheter från ett nyckelvalv i Azure Stack Hub.
Förutsättningar
Du kan installera följande krav från Azure Stack Development Kit eller från en Windows-baserad extern klient om du är ansluten via VPN:
- Installera Azure Stack Hub-kompatibla Azure PowerShell moduler.
- Ladda ned de verktyg som krävs för att arbeta med Azure Stack Hub.
Skapa ett nyckelvalv och registrera en app
Så här förbereder du för exempelprogrammet:
- Skapa ett nyckelvalv i Azure Stack Hub.
- Registrera en app i Microsoft Entra-ID.
Använd Azure Portal eller PowerShell för att förbereda för exempelappen.
Anteckning
Som standard skapar PowerShell-skriptet en ny app i Active Directory. Du kan dock registrera ett av dina befintliga program.
Kontrollera att du anger värden för variablerna aadTenantName
och applicationPassword
innan du kör följande skript. Om du inte anger något värde för applicationPassword
genererar det här skriptet ett slumpmässigt lösenord.
$vaultName = 'myVault'
$resourceGroupName = 'myResourceGroup'
$applicationName = 'myApp'
$location = 'local'
# Password for the application. If not specified, this script generates a random password during app creation.
$applicationPassword = ''
# Function to generate a random password for the application.
Function GenerateSymmetricKey()
{
$key = New-Object byte[](32)
$rng = [System.Security.Cryptography.RNGCryptoServiceProvider]::Create()
$rng.GetBytes($key)
return [System.Convert]::ToBase64String($key)
}
Write-Host 'Please log into your Azure Stack Hub user environment' -foregroundcolor Green
$tenantARM = "https://management.local.azurestack.external"
$aadTenantName = "FILL THIS IN WITH YOUR AAD TENANT NAME. FOR EXAMPLE: myazurestack.onmicrosoft.com"
# Configure the Azure Stack Hub operator's PowerShell environment.
Add-AzEnvironment `
-Name "AzureStackUser" `
-ArmEndpoint $tenantARM
$TenantID = Get-AzsDirectoryTenantId `
-AADTenantName $aadTenantName `
-EnvironmentName AzureStackUser
# Sign in to the user portal.
Connect-AzAccount `
-EnvironmentName "AzureStackUser" `
-TenantId $TenantID `
$now = [System.DateTime]::Now
$oneYearFromNow = $now.AddYears(1)
$applicationPassword = GenerateSymmetricKey
# Create a new Azure AD application.
$identifierUri = [string]::Format("http://localhost:8080/{0}",[Guid]::NewGuid().ToString("N"))
$homePage = "https://contoso.com"
Write-Host "Creating a new AAD Application"
$ADApp = New-AzADApplication `
-DisplayName $applicationName `
-HomePage $homePage `
-IdentifierUris $identifierUri `
-StartDate $now `
-EndDate $oneYearFromNow `
-Password $applicationPassword
Write-Host "Creating a new AAD service principal"
$servicePrincipal = New-AzADServicePrincipal `
-ApplicationId $ADApp.ApplicationId
# Create a new resource group and a key vault in that resource group.
New-AzResourceGroup `
-Name $resourceGroupName `
-Location $location
Write-Host "Creating vault $vaultName"
$vault = New-AzKeyVault -VaultName $vaultName `
-ResourceGroupName $resourceGroupName `
-Sku standard `
-Location $location
# Specify full privileges to the vault for the application.
Write-Host "Setting access policy"
Set-AzKeyVaultAccessPolicy -VaultName $vaultName `
-ObjectId $servicePrincipal.Id `
-PermissionsToKeys all `
-PermissionsToSecrets all
Write-Host "Paste the following settings into the app.config file for the HelloKeyVault project:"
'<add key="VaultUrl" value="' + $vault.VaultUri + '"/>'
'<add key="AuthClientId" value="' + $servicePrincipal.ApplicationId + '"/>'
'<add key="AuthClientSecret" value="' + $applicationPassword + '"/>'
Write-Host
Följande bild visar utdata från skriptet som används för att skapa nyckelvalvet:
Anteckna värdena VaultUrl, AuthClientId och AuthClientSecret som returnerades av föregående skript. Du använder dessa värden för att köra HelloKeyVault-programmet .
Ladda ned och konfigurera exempelprogrammet
Ladda ned nyckelvalvsexemplet från sidan med Azure Key Vault-klientexempel. Extrahera innehållet i .zip-filen på utvecklingsarbetsstationen. Det finns två appar i exempelmappen. i den här artikeln används HelloKeyVault.
Så här läser du in HelloKeyVault-exemplet :
- Bläddra till mappen Microsoft.Azure.KeyVault.Samples>HelloKeyVault>.
- Öppna HelloKeyVault-appen i Visual Studio.
Konfigurera exempelprogrammet
I Visual Studio:
Öppna filen HelloKeyVault\App.config och leta reda på elementet
<appSettings>
.Uppdatera nycklarna VaultUrl, AuthClientId och AuthCertThumbprint med de värden som returneras när du skapar nyckelvalvet. Som standard har App.config-filen en platshållare för
AuthCertThumbprint
. Ersätt den här platshållaren medAuthClientSecret
.<appSettings> <!-- Update these settings for your test environment --> <add key="VaultUrl" value="URL to your Vault" /> <add key="AuthClientId" value="Client Id of your Service Principal" /> <add key="AuthCertThumbprint" value="Thumbprint of the certificate used for authentication" /> <add key="TracingEnabled" value="false" /> </appSettings>
Återskapa lösningen.
Kör appen
När du kör HelloKeyVault loggar appen in på Microsoft Entra-ID och använder sedan token för att autentisera AuthClientSecret
till nyckelvalvet i Azure Stack Hub.
Du kan använda HelloKeyVault-exemplet för att:
- Utför grundläggande åtgärder som att skapa, kryptera, omsluta och ta bort nycklar och hemligheter.
- Skicka parametrar som
encrypt
ochdecrypt
till HelloKeyVault och tillämpa de angivna ändringarna på ett nyckelvalv.