Az alkalmazások hozzáférésének engedélyezése az Azure Stack Hubhoz Key Vault titkos kódokhoz

A cikk lépései bemutatják, hogyan futtatható a HelloKeyVault mintaalkalmazás, amely kulcsokat és titkos kulcsokat kér le az Azure Stack Hub egyik kulcstartójából.

Előfeltételek

Ha VPN-en keresztül csatlakozik, az alábbi előfeltételeket telepítheti az Azure Stack fejlesztői készletből vagy egy Windows-alapú külső ügyfélből:

Kulcstartó létrehozása és alkalmazás regisztrálása

A mintaalkalmazás előkészítése:

  • Hozzon létre egy kulcstartót az Azure Stack Hubban.
  • Alkalmazás regisztrálása Microsoft Entra azonosítóban.

A mintaalkalmazásra való felkészüléshez használja a Azure Portal vagy a PowerShellt.

Megjegyzés

Alapértelmezés szerint a PowerShell-szkript létrehoz egy új alkalmazást az Active Directoryban. Az egyik meglévő alkalmazást azonban regisztrálhatja.

A következő szkript futtatása előtt győződjön meg arról, hogy a és applicationPassword változók értékeit aadTenantName adja meg. Ha nem ad meg értéket a számára applicationPassword, ez a szkript véletlenszerű jelszót hoz létre.

$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

Az alábbi képen a kulcstartó létrehozásához használt szkript kimenete látható:

Kulcstartó hozzáférési kulcsokkal

Jegyezze fel az előző szkript által visszaadott VaultUrl, AuthClientId és AuthClientSecret értékeket. Ezekkel az értékekkel futtathatja a HelloKeyVault alkalmazást.

A mintaalkalmazás letöltése és konfigurálása

Töltse le a key vault-mintát az Azure Key Vault ügyfélminták oldaláról. Bontsa ki a fejlesztési munkaállomáson található .zip fájl tartalmát. A mintamappában két alkalmazás található; ez a cikk a HelloKeyVaultot használja.

A HelloKeyVault-minta betöltése:

  1. Keresse meg a Microsoft.Azure.KeyVault.Samples>samples>HelloKeyVault mappát.
  2. Nyissa meg a HelloKeyVault alkalmazást a Visual Studióban.

A mintaalkalmazás konfigurálása

A Visual Studióban:

  1. Nyissa meg a HelloKeyVault\App.config fájlt, és keresse meg az <appSettings> elemet.

  2. Frissítse a VaultUrl, az AuthClientId és az AuthCertThumbprint kulcsokat a kulcstartó létrehozásakor visszaadott értékekkel. Alapértelmezés szerint a App.config fájlnak van helyőrzője.AuthCertThumbprint Cserélje le ezt a helyőrzőt a helyére 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. Építse újra a megoldást.

Az alkalmazás futtatása

A HelloKeyVault futtatásakor az alkalmazás bejelentkezik Microsoft Entra azonosítóba, majd a AuthClientSecret jogkivonat használatával hitelesíti magát az Azure Stack Hub kulcstartójában.

A HelloKeyVault-mintát a következőre használhatja:

  • Olyan alapvető műveleteket hajt végre, mint a kulcsok és titkos kulcsok létrehozása, titkosítása, körbefuttatása és törlése.
  • Adja át az és decrypt a paramétereket a encryptHelloKeyVaultnak, és alkalmazza a megadott módosításokat egy kulcstartóra.

Következő lépések