Consentire alle app di accedere ai segreti dell'hub di Azure Stack Key Vault
I passaggi descritti in questo articolo descrivono come eseguire l'app di esempio HelloKeyVault che recupera chiavi e segreti da un insieme di credenziali delle chiavi nell'hub di Azure Stack.
Prerequisiti
È possibile installare i prerequisiti seguenti da Azure Stack Development Kit o da un client esterno basato su Windows se si è connessi tramite VPN:
- Installare moduli di Azure PowerShell compatibili con l'hub di Azure Stack.
- Scaricare gli strumenti necessari per usare l'hub di Azure Stack.
Creare un insieme di credenziali delle chiavi e registrare un'app
Per prepararsi per l'applicazione di esempio:
- Creare un insieme di credenziali delle chiavi nell'hub di Azure Stack.
- Registrare un'app in Microsoft Entra ID.
Usare il portale di Azure o PowerShell per preparare l'app di esempio.
Nota
Per impostazione predefinita, lo script di PowerShell crea una nuova app in Active Directory. Tuttavia, è possibile registrare una delle applicazioni esistenti.
Prima di eseguire lo script seguente, assicurarsi di specificare i valori per le aadTenantName
variabili e applicationPassword
. Se non si specifica un valore per applicationPassword
, questo script genera una password casuale.
$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
L'immagine seguente mostra l'output dello script usato per creare l'insieme di credenziali delle chiavi:
Prendere nota dei valori VaultUrl, AuthClientId e AuthClientSecret restituiti dallo script precedente. Questi valori vengono usati per eseguire l'applicazione HelloKeyVault .
Scaricare e configurare l'applicazione di esempio
Scaricare l'esempio dell'insieme di credenziali delle chiavi dalla pagina degli esempi client di Azure Key Vault. Estrarre il contenuto del file .zip nella workstation di sviluppo. Nella cartella samples sono presenti due app; questo articolo usa HelloKeyVault.
Per caricare l'esempio HelloKeyVault :
- Passare alla cartella Microsoft.Azure.KeyVault.Samples>HelloKeyVault.>
- Aprire l'app HelloKeyVault in Visual Studio.
Configurare l'applicazione di esempio
In Visual Studio:
Aprire il file HelloKeyVault\App.config e trovare l'elemento
<appSettings>
.Aggiornare le chiavi VaultUrl, AuthClientId e AuthCertThumbprint con i valori restituiti durante la creazione dell'insieme di credenziali delle chiavi. Per impostazione predefinita, il file di App.config ha un segnaposto per
AuthCertThumbprint
. Sostituire questo segnaposto conAuthClientSecret
.<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>
Ricompilare la soluzione.
Eseguire l'app
Quando si esegue HelloKeyVault, l'app accede a Microsoft Entra ID e quindi usa il token per eseguire l'autenticazione AuthClientSecret
all'insieme di credenziali delle chiavi nell'hub di Azure Stack.
È possibile usare l'esempio HelloKeyVault per:
- Eseguire operazioni di base, ad esempio creare, crittografare, eseguire il wrapping ed eliminare le chiavi e i segreti.
- Passare parametri come
encrypt
edecrypt
a HelloKeyVault e applicare le modifiche specificate a un insieme di credenziali delle chiavi.