Freigeben über


Tutorial: Verwenden von Key Vault-Verweisen in einer Java Spring-App

In diesem Tutorial erfahren Sie, wie Sie den Azure App Configuration-Dienst zusammen mit Azure Key Vault verwenden. Die Dienste App Configuration und Key Vault ergänzen sich gegenseitig und werden bei den meisten Anwendungsbereitstellungen gemeinsam eingesetzt.

App Configuration unterstützt Sie beim parallelen Verwenden der Dienste, indem Schlüssel erstellt werden, mit denen auf in Key Vault gespeicherte Werte verwiesen wird. Wenn mit App Configuration Schlüssel dieser Art erstellt werden, werden nicht die eigentlichen Werte, sondern die URIs der Key Vault-Werte gespeichert.

Ihre Anwendung nutzt den App Configuration-Clientanbieter, um Key Vault-Verweise abzurufen, wie dies auch für alle anderen Schlüssel der Fall ist, die in App Configuration gespeichert sind. In diesem Fall sind die in App Configuration gespeicherten Werte URIs, mit denen auf die Werte in Key Vault verwiesen wird. Dies sind keine Key Vault-Werte oder -Anmeldeinformationen. Da der Clientanbieter die Schlüssel als Key Vault-Verweise erkennt, wird Key Vault zum Abrufen der zugehörigen Werte verwendet.

Ihre Anwendung ist für die ordnungsgemäße Authentifizierung sowohl bei App Configuration als auch bei Key Vault zuständig. Die beiden Dienste kommunizieren nicht direkt.

In diesem Tutorial wird veranschaulicht, wie Sie Key Vault-Verweise in Ihrem Code implementieren. Sie baut auf der Web-App auf, die in der Schnellstartanleitung eingeführt wurde. Bevor Sie fortfahren, erstellen Sie zuerst eine Java Spring-App mit App Configuration.

Für die Ausführung der Schritte dieses Tutorials können Sie einen beliebigen Code-Editor verwenden. Visual Studio Code ist beispielsweise ein plattformübergreifender Code-Editor, der für die Betriebssysteme Windows, macOS und Linux verfügbar ist.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen eines App Configuration-Schlüssels, der auf einen in Key Vault gespeicherten Wert verweist
  • Zugreifen auf den Wert dieses Schlüssels über eine Java Spring-Webanwendung

Voraussetzungen

Erstellen eines Schlüsseltresors

  1. Melden Sie sich beim Azure-Portal an, und wählen Sie dann "Ressource erstellen" aus.

  2. Geben Sie Key Vault in das Suchfeld ein. Wählen Sie in der Ergebnisliste Key Vault aus.

  3. Wählen Sie auf der Seite "Key Vault " die Option "Erstellen" aus.

  4. Geben Sie auf der Seite "Key Vault erstellen" die folgenden Informationen ein:

    • Für Abonnement: Wählen Sie ein Abonnement aus.
    • Für Ressourcengruppe: Geben Sie den Namen einer vorhandenen Ressourcengruppe ein, oder wählen Sie "Neu erstellen" aus, und geben Sie einen Ressourcengruppennamen ein.
    • Für Schlüsseltresorname: Geben Sie einen eindeutigen Namen ein.
    • Für Region: Wählen Sie einen Speicherort aus.
  5. Verwenden Sie für die anderen Optionen die Standardwerte.

  6. Klicken Sie auf Überprüfen + erstellen.

  7. Nachdem das System Ihre Eingaben überprüft und anzeigt, wählen Sie "Erstellen" aus.

An diesem Punkt ist nur Ihr Azure-Konto für den Zugriff auf diesen neuen Tresor autorisiert.

Hinzufügen eines Geheimnisses zu Key Vault

Fügen Sie dem Vault ein Secret hinzu, um die Abfrage des Key Vault zu testen. Der geheime Schlüssel heißt "Nachricht", und sein Wert lautet "Hello from Key Vault".

  1. Wählen Sie im Ressourcenmenü "Key Vault" die Option "Geheime Objekte"> aus.

  2. Wählen Sie die Option Generieren/Importieren aus.

  3. Geben Sie im Dialogfeld " Geheime Schlüssel erstellen " die folgenden Werte ein:

    • Für Uploadoptionen: Geben Sie Manuell ein.
    • Name:Nachricht eingeben.
    • Für Geheimwert: Geben Sie Hello from Key Vault ein.
  4. Verwenden Sie für die anderen Optionen die Standardwerte.

  5. Klicken Sie auf Erstellen.

Hinzufügen eines Key Vault-Verweises zu App Configuration

  1. Melden Sie sich beim Azure-Portal an. Wählen Sie "Alle Ressourcen" und dann Ihren App-Konfigurationsspeicher aus.

  2. Wählen Sie Konfigurations-Explorer aus.

  3. Wählen Sie + Erstellen>Schlüsseltresorverweis aus, und geben Sie dann die folgenden Werte an:

    • Schlüssel: Geben Sie /application/config.keyVaultMessage ein.
    • Bezeichnung: Lassen Sie diesen Wert leer.
    • Abonnement, Ressourcengruppe und Schlüsseltresor: Geben Sie die Werte ein, die dem schlüsseltresor entsprechen, den Sie im vorherigen Abschnitt erstellt haben.
    • Geheimnis: Wählen Sie das Geheimnis mit dem Namen Nachricht aus, das Sie im vorherigen Abschnitt erstellt haben.

Gewähren des Zugriffs auf Key Vault für Ihre App

Ihre Anwendung verwendet DefaultAzureCredential zur Authentifizierung sowohl für die App-Konfiguration als auch für Key Vault. Diese Anmeldeinformationen funktionieren nahtlos mit verwalteten Identitäten in Azure und lokal mit Ihren Entwickleranmeldeinformationen.

  1. Gewähren Sie Ihrer Identität Zugriff auf den Key Vault. Weisen Sie Ihrem Benutzerkonto oder verwalteter Identität die Rolle "Key Vault Secrets-Benutzer" zu:

    az role assignment create --role "Key Vault Secrets User" --scope /subscriptions/<subscriptionId>/resourceGroups/<group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name> --assignee <your-azure-ad-user-or-managed-identity>
    
  2. Gewähren Sie Ihrer Identität Zugriff auf die App-Konfiguration. Zuweisen der Rolle " App-Konfigurationsdatenleser ":

    az role assignment create --role "App Configuration Data Reader" --scope /subscriptions/<subscriptionId>/resourceGroups/<group-name>/providers/Microsoft.AppConfiguration/configurationStores/<your-app-configuration-store> --assignee <your-azure-ad-user-or-managed-identity>
    

Aktualisieren Sie Ihren Code, um einen Key Vault-Verweis zu verwenden.

  1. Erstellen Sie eine Umgebungsvariable namens APP_CONFIGURATION_ENDPOINT. Legen Sie den Wert auf den Endpunkt Ihres App-Konfigurationsspeichers fest. Den Endpunkt finden Sie im Azure-Portal auf dem Blatt Zugriffsschlüssel. Starten Sie die Eingabeaufforderung neu, damit die Änderung wirksam wird.

  2. Öffnen Sie Ihre Konfigurationsdatei im Ordner Ressourcen. Aktualisieren Sie diese Datei, sodass der Wert APP_CONFIGURATION_ENDPOINT verwendet wird. Entfernen Sie alle Verweise auf eine Verbindungszeichenfolge in dieser Datei.

spring:
    config:
        import: azureAppConfiguration
    cloud:
        azure:
            appconfiguration:
                stores:
                    - endpoint: ${APP_CONFIGURATION_ENDPOINT}

Hinweis

Zum Herstellen einer Verbindung mit dem Key Vault können Sie auch die globalen Azure-Konfigurationen von Spring Cloud verwenden.

  1. Öffnen Sie MyProperties.java. Fügen Sie eine neue Variable mit dem Namen keyVaultMessage hinzu:

    private String keyVaultMessage;
    
    public String getKeyVaultMessage() {
        return keyVaultMessage;
    }
    
    public void setKeyVaultMessage(String keyVaultMessage) {
        this.keyVaultMessage = keyVaultMessage;
    }
    
  2. Öffnen Sie HelloController.java. Aktualisieren Sie die getMessage-Methode, um die von Key Vault abgerufene Nachricht einzuschließen.

    @GetMapping
    public String getMessage() {
        return "Message: " + properties.getMessage() + "\nKey Vault message: " + properties.getKeyVaultMessage();
    }
    
  3. Erstellen Sie Ihre Spring Boot-Anwendung mit Maven, und führen Sie sie aus. Beispiel:

    mvn clean package
    mvn spring-boot:run
    
  4. Nachdem Ihre Anwendung ausgeführt wird, testen Sie sie mit cURL. Beispiel:

    curl -X GET http://localhost:8080/
    

    Die Nachricht, die Sie im App Configuration-Store eingegeben haben, wird angezeigt. Darüber hinaus wird die Nachricht angezeigt, die Sie in Key Vault eingegeben haben.

Bereinigen von Ressourcen

Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr verwenden möchten, löschen Sie die erstellte Ressourcengruppe, um Kosten zu vermeiden.

Wichtig

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen für diesen Artikel in einer Ressourcengruppe erstellt haben, die andere beizubehaltende Ressourcen enthält, löschen Sie die Ressourcen einzeln über den entsprechenden Bereich, statt die Ressourcengruppe zu löschen.

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
  2. Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
  3. Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
  4. Wählen Sie die Option Ressourcengruppe löschen.
  5. Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und klicken Sie auf Löschen.

Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.

Nächste Schritte

In diesem Tutorial haben Sie einen App Configuration-Schlüssel erstellt, mit dem auf einen in Key Vault gespeicherten Wert verwiesen wird. Weitere Fragen finden Sie in der Referenzdokumentation. Sie enthält alle Details zur Funktionsweise der Spring Cloud Azure App Configuration-Bibliothek. Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Featureflags in Ihrer Java Spring-Anwendung verwendet werden.