Zugriff auf Azure Stack Hub-Key Vault-Geheimnisse durch Apps zulassen

In den Schritten in diesem Artikel wird beschrieben, wie Sie die Beispiel-App HelloKeyVault ausführen, die Schlüssel und Geheimnisse aus einem Schlüsseltresor in Azure Stack Hub abruft.

Voraussetzungen

Sie können die folgenden erforderlichen Komponenten über das Azure Stack Development Kit oder einen Windows-basierten externen Client installieren, sofern eine VPN-Verbindung besteht:

Erstellen eines Schlüsseltresors und Registrieren einer App

Bereiten Sie die Beispielanwendung wie folgt vor:

  • Erstellen Sie einen Schlüsseltresor in Azure Stack Hub.
  • Registrieren Sie eine App in Microsoft Entra ID.

Verwenden Sie das Azure-Portal oder PowerShell, um die Vorbereitungen für die Beispiel-App durchzuführen.

Hinweis

Standardmäßig wird mit dem PowerShell-Skript eine neue App in Active Directory erstellt. Sie können aber auch eine Ihrer vorhandenen Anwendungen registrieren.

Stellen Sie vor dem Ausführen des folgenden Skripts sicher, dass Sie Werte für die Variablen aadTenantName und applicationPassword angeben. Wenn Sie keinen Wert für applicationPassword angeben, generiert dieses Skript ein zufälliges Kennwort.

$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

Die folgende Abbildung zeigt die Ausgabe des Skripts, das zum Erstellen des Schlüsseltresors verwendet wird:

Schlüsseltresor mit Zugriffsschlüsseln

Notieren Sie die vom Skript zurückgegeben Werte für VaultUrl, AuthClientId und AuthClientSecret. Diese Werte verwenden Sie zum Ausführen der Anwendung HelloKeyVault.

Herunterladen und Konfigurieren der Beispielanwendung

Laden Sie den Beispielschlüsseltresor von der Seite mit den Azure Key Vault-Clientbeispielen herunter. Extrahieren Sie den Inhalt der ZIP-Datei auf Ihrer Entwicklungsarbeitsstation. Der Ordner „samples“ enthält zwei Apps, von denen in diesem Artikel HelloKeyVault verwendet wird.

So laden Sie das HelloKeyVault-Beispiel:

  1. Navigieren Sie zum Ordner Microsoft.Azure.KeyVault.Samples>samples>HelloKeyVault.
  2. Öffnen Sie die App HelloKeyVault in Visual Studio.

Konfigurieren der Beispielanwendung

In Visual Studio:

  1. Öffnen Sie die Datei „HelloKeyVault\App.config“, und suchen Sie nach dem Element <appSettings>.

  2. Aktualisieren Sie die Schlüssel VaultUrl, AuthClientId und AuthCertThumbprint mit den beim Erstellen des Schlüsseltresors zurückgegebenen Werten. Standardmäßig enthält die Datei „App.config“ einen Platzhalter für AuthCertThumbprint. Ersetzen Sie diesen Platzhalter durch 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. Erstellen Sie die Projektmappe neu.

Ausführen der App

Wenn Sie HelloKeyVault ausführen, meldet sich die App bei Microsoft Entra-ID an und verwendet das AuthClientSecret Token dann zur Authentifizierung beim Schlüsseltresor in Azure Stack Hub.

Sie können das Beispiel HelloKeyVault für folgende Zwecke verwenden:

  • Führen Sie grundlegende Vorgänge wie das Erstellen, Verschlüsseln, Umschließen und Löschen der Schlüssel und Geheimnisse durch.
  • Übergeben Sie Parameter (z.B. encrypt und decrypt) an HelloKeyVault, und wenden Sie die angegebenen Änderungen auf einen Schlüsseltresor an.

Nächste Schritte