Povolit aplikacím přístup k tajným kódům služby Azure Stack Hub Key Vault
Kroky v tomto článku popisují, jak spustit ukázkovou aplikaci HelloKeyVault , která načítá klíče a tajné kódy z trezoru klíčů ve službě Azure Stack Hub.
Požadavky
Následující požadavky můžete nainstalovat ze sady Azure Stack Development Kit nebo z externího klienta se systémem Windows, pokud jste připojení přes síť VPN:
- Nainstalujte moduly Azure PowerShell kompatibilní se službou Azure Stack Hub.
- Stáhněte si nástroje potřebné pro práci se službou Azure Stack Hub.
Vytvoření trezoru klíčů a registrace aplikace
Příprava na ukázkovou aplikaci:
- Vytvořte trezor klíčů ve službě Azure Stack Hub.
- Zaregistrujte aplikaci ve Microsoft Entra ID.
K přípravě na ukázkovou aplikaci použijte Azure Portal nebo PowerShell.
Poznámka
Ve výchozím nastavení skript PowerShellu vytvoří novou aplikaci ve službě Active Directory. Můžete ale zaregistrovat některou ze svých existujících aplikací.
Před spuštěním následujícího skriptu se ujistěte, že jste zadali aadTenantName
hodnoty proměnných a applicationPassword
. Pokud nezadáte hodnotu pro applicationPassword
, tento skript vygeneruje náhodné heslo.
$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
Následující obrázek znázorňuje výstup skriptu použitého k vytvoření trezoru klíčů:
Poznamenejte si hodnoty VaultUrl, AuthClientId a AuthClientSecret vrácené předchozím skriptem. Tyto hodnoty použijete ke spuštění aplikace HelloKeyVault .
Stažení a konfigurace ukázkové aplikace
Stáhněte si ukázku trezoru klíčů ze stránky s ukázkami klientů Azure Key Vault. Extrahujte obsah souboru .zip na vývojové pracovní stanici. Ve složce s ukázkami jsou dvě aplikace: Tento článek používá HelloKeyVault.
Načtení ukázky HelloKeyVault :
- Přejděte do složkyUkázek>HelloKeyVaultMicrosoft.Azure.KeyVault.Samples>.
- Otevřete aplikaci HelloKeyVault v sadě Visual Studio.
Konfigurace ukázkové aplikace
V sadě Visual Studio:
Otevřete soubor HelloKeyVault\App.config a najděte
<appSettings>
element .Aktualizujte klíče VaultUrl, AuthClientId a AuthCertThumbprint hodnotami vrácenými při vytváření trezoru klíčů. Ve výchozím nastavení má soubor App.config zástupný symbol pro
AuthCertThumbprint
. Nahraďte tento zástupný symbol textemAuthClientSecret
.<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>
Znovu sestavte řešení.
Spuštění aplikace
Když spustíte HelloKeyVault, aplikace se přihlásí k Microsoft Entra ID a pak použije AuthClientSecret
token k ověření v trezoru klíčů ve službě Azure Stack Hub.
Ukázku HelloKeyVault můžete použít k:
- Provádět základní operace, jako je vytvoření, šifrování, zabalení a odstranění klíčů a tajných klíčů.
- Předejte parametry, jako
encrypt
jsou adecrypt
do HelloKeyVault, a použijte zadané změny v trezoru klíčů.