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:

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íčů:

Trezor klíčů s přístupovými klíči

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 :

  1. Přejděte do složkyUkázek>HelloKeyVaultMicrosoft.Azure.KeyVault.Samples>.
  2. Otevřete aplikaci HelloKeyVault v sadě Visual Studio.

Konfigurace ukázkové aplikace

V sadě Visual Studio:

  1. Otevřete soubor HelloKeyVault\App.config a najděte <appSettings> element .

  2. 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 textem AuthClientSecret.

    <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>
    
  3. 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 a decrypt do HelloKeyVault, a použijte zadané změny v trezoru klíčů.

Další kroky