Apps toegang geven tot Azure Stack Hub Key Vault geheimen
In de stappen in dit artikel wordt beschreven hoe u de voorbeeld-app HelloKeyVault uitvoert die sleutels en geheimen ophaalt uit een sleutelkluis in Azure Stack Hub.
Vereisten
U kunt de volgende vereisten installeren vanuit de Azure Stack Development Kit of vanuit een externe Windows-client als u verbinding hebt via VPN:
- Installeer met Azure Stack Hub compatibele Azure PowerShell-modules.
- Download de hulpprogramma's die nodig zijn om met Azure Stack Hub te werken.
Een sleutelkluis maken en een app registreren
Voorbereiden op de voorbeeldtoepassing:
- Maak een sleutelkluis in Azure Stack Hub.
- Registreer een app in Microsoft Entra-id.
Gebruik de Azure Portal of PowerShell om de voorbeeld-app voor te bereiden.
Notitie
Standaard maakt het PowerShell-script een nieuwe app in Active Directory. U kunt echter een van uw bestaande toepassingen registreren.
Voordat u het volgende script uitvoert, moet u waarden opgeven voor de aadTenantName
variabelen en applicationPassword
. Als u geen waarde opgeeft voor applicationPassword
, genereert dit script een willekeurig wachtwoord.
$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
In de volgende afbeelding ziet u de uitvoer van het script dat is gebruikt om de sleutelkluis te maken:
Noteer de waarden VaultUrl, AuthClientId en AuthClientSecret die door het vorige script zijn geretourneerd. U gebruikt deze waarden om de HelloKeyVault-toepassing uit te voeren.
De voorbeeldtoepassing downloaden en configureren
Download het sleutelkluisvoorbeeld op de pagina Azure Key Vault-clientvoorbeelden. Pak de inhoud van het .zip-bestand uit op uw ontwikkelwerkstation. Er zijn twee apps in de map voorbeelden; In dit artikel wordt HelloKeyVault gebruikt.
Het HelloKeyVault-voorbeeld laden:
- Bladernaar deHelloKeyVault-mapMicrosoft.Azure.KeyVault.Samples.Samples>>.
- Open de HelloKeyVault-app in Visual Studio.
De voorbeeldtoepassing configureren
In Visual Studio:
Open het HelloKeyVault\App.config-bestand en zoek het
<appSettings>
element.Werk de sleutels VaultUrl, AuthClientId en AuthCertThumbprint bij met de waarden die worden geretourneerd bij het maken van de sleutelkluis. Het App.config-bestand heeft standaard een tijdelijke aanduiding voor
AuthCertThumbprint
. Vervang deze tijdelijke aanduiding doorAuthClientSecret
.<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>
Bouw de oplossing opnieuw.
De app uitvoeren
Wanneer u HelloKeyVault uitvoert, meldt de app zich aan bij Microsoft Entra-id en gebruikt vervolgens het AuthClientSecret
token om te verifiëren bij de sleutelkluis in Azure Stack Hub.
U kunt het HelloKeyVault-voorbeeld gebruiken om het volgende te doen:
- Voer basisbewerkingen uit, zoals maken, versleutelen, verpakken en verwijderen voor de sleutels en geheimen.
- Geef parameters zoals
encrypt
endecrypt
door aan HelloKeyVault en pas de opgegeven wijzigingen toe op een sleutelkluis.