Delen via


Zelfstudie: Key Vault-verwijzingen gebruiken in een Java Spring-app

In deze zelfstudie leert u hoe u de Azure App Configuration-service kunt gebruiken in combinatie met Azure Key Vault. App Configuration en Key Vault zijn complementaire services die naast elkaar worden gebruikt in de meeste toepassingsimplementaties.

Met App Configuration kunt u de services gezamenlijk gebruiken door sleutels te maken die verwijzen naar waarden die zijn opgeslagen in Key Vault. Wanneer App Configuration dergelijke sleutels maakt, worden de URI's van Key Vault-waarden opgeslagen in plaats van de waarden zelf.

In uw toepassing wordt gebruikgemaakt van de clientprovider van App Configuration om Key Vault-verwijzingen op te halen, net zoals bij andere sleutels die zijn opgeslagen in App Configuration. In dit geval zijn de waarden die zijn opgeslagen in App Configuration URI's die verwijzen naar de waarden in de Key Vault. Dit zijn geen Key Vault-waarden of -referenties. Omdat de clientprovider de sleutels als Key Vault-verwijzingen herkent, wordt Key Vault gebruikt om de waarden op te halen.

Uw toepassing is verantwoordelijk voor het correct verifiëren van zowel App Configuration als Key Vault. De twee services communiceren niet rechtstreeks.

In deze zelfstudie wordt uitgelegd hoe u Key Vault-verwijzingen in uw code kunt implementeren. Het bouwt voort op de web-app die is geïntroduceerd in de quickstart. Voor u verdergaat, moet u eerst een Java Spring-app maken met App Configuration.

U kunt elke code-editor gebruiken om de stappen in deze zelfstudie uit te voeren. Visual Studio Code is bijvoorbeeld een platformoverschrijdende code-editor die beschikbaar is voor Windows-, macOS- en Linux-besturingssystemen.

In deze zelfstudie leert u het volgende:

  • Een App Configuration-sleutel maken die verwijst naar een waarde die is opgeslagen in Key Vault.
  • Toegang tot de waarde van deze sleutel vanuit een Java Spring-toepassing.

Vereisten

Maak een Key Vault.

  1. Meld u aan bij de Azure-portal en selecteer Resource maken.

  2. Typ Key Vault in het zoekvak. Selecteer Key Vault in de resultatenlijst.

  3. Selecteer Maken op de pagina Key Vault.

  4. Voer op de pagina Een sleutelkluis maken de volgende gegevens in:

    • Voor abonnement: Selecteer een abonnement.
    • Voor de resourcegroep: voer de naam van een bestaande resourcegroep in of selecteer Nieuwe maken en voer een resourcegroepnaam in.
    • Voer een unieke naam in voor de naam van de sleutelkluis.
    • Voor regio: Selecteer een locatie.
  5. Gebruik de standaardwaarden voor de andere opties.

  6. Kies Beoordelen + creëren.

  7. Nadat het systeem uw invoer heeft gevalideerd en weergegeven, selecteert u Maken.

Vanaf nu is uw Azure-account als enige gemachtigd om bewerkingen op deze nieuwe Key Vault uit te voeren.

Een geheim toevoegen aan Key Vault

Voeg een geheim toe aan de kluis om het ophalen van Key Vault te testen. Het geheim heet Bericht en de waarde is 'Hello from Key Vault'.

  1. SelecteerObjectengeheimen> in het menu van de Key Vault-resource.

  2. Selecteer Genereren/Importeren.

  3. Voer in het dialoogvenster Een geheim maken de volgende waarden in:

    • Voor uploadopties: Voer handmatig in.
    • Voor Naam: Voer Bericht in.
    • Voor geheime waarde: Voer Hello uit Key Vault in.
  4. Gebruik de standaardwaarden voor de andere opties.

  5. Selecteer Maken.

Een sleutelkluisverwijzing toevoegen aan App Configuration

  1. Meld u aan bij het Azure-portaal. Selecteer Alle resources en selecteer vervolgens uw App Configuration-archief.

  2. Selecteer Configuratieverkenner.

  3. Selecteer + Maken>Sleutelkluisverwijzing en geef de volgende waarden op:

    • Sleutel: Voer /application/config.keyVaultMessage in.
    • Label: laat deze waarde leeg.
    • Abonnement, resourcegroep en sleutelkluis: voer de waarden in die overeenkomen met de sleutelkluis die u in de vorige sectie hebt gemaakt.
    • Geheim: Selecteer het geheim met de naam Bericht dat u in de vorige sectie hebt gemaakt.

Uw app toegang verlenen tot Key Vault

Uw toepassing gebruikt DefaultAzureCredential voor verificatie bij zowel App Configuration als Key Vault. Deze referentie werkt automatisch met beheerde identiteiten in Azure en met uw referenties voor ontwikkelaars lokaal.

  1. Uw identiteit toegang verlenen tot Key Vault. Wijs de rol Key Vault Secrets User toe aan uw gebruikersaccount of beheerde identiteit:

    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. Verleen uw identiteit toegang tot App Configuration. Wijs de rol App Configuration Data Reader toe:

    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>
    

Uw code bijwerken om een Key Vault-referentie te gebruiken

  1. Maak een omgevingsvariabele met de naam APP_CONFIGURATION_ENDPOINT. Stel de waarde ervan in op het eindpunt van uw App Configuration-opslag. U kunt het eindpunt op de Toegangssleutels blade in de Azure-portal vinden. Start de opdrachtprompt opnieuw op om de wijziging door te voeren.

  2. Open het configuratiebestand in de map resources. Werk dit bestand bij om de waarde APP_CONFIGURATION_ENDPOINT te gebruiken. Verwijder alle verwijzingen naar een verbindingstekenreeks in dit bestand.

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

Notitie

U kunt ook de globale Spring Cloud Azure-configuraties gebruiken om verbinding te maken met Key Vault.

  1. Open MyProperties.java. Voeg een nieuwe variabele toe met de naam keyVaultMessage:

    private String keyVaultMessage;
    
    public String getKeyVaultMessage() {
        return keyVaultMessage;
    }
    
    public void setKeyVaultMessage(String keyVaultMessage) {
        this.keyVaultMessage = keyVaultMessage;
    }
    
  2. Open HelloController.java. Werk de getMessage-methode bij om het bericht dat is opgehaald uit Key Vault toe te voegen.

    @GetMapping
    public String getMessage() {
        return "Message: " + properties.getMessage() + "\nKey Vault message: " + properties.getKeyVaultMessage();
    }
    
  3. Maak de Spring Boot-toepassing met Maven en voer deze uit; bijvoorbeeld:

    mvn clean package
    mvn spring-boot:run
    
  4. Nadat uw toepassing wordt uitgevoerd, kunt u curl gebruiken om uw toepassing te testen; bijvoorbeeld:

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

    U ziet het bericht dat u hebt ingevoerd in de App Configuration opslag. U ziet ook het bericht dat u hebt ingevoerd in Key Vault.

Hulpbronnen opschonen

Als u de resources die in dit artikel zijn gemaakt niet wilt blijven gebruiken, verwijdert u de resourcegroep die u hier hebt gemaakt om kosten te voorkomen.

Belangrijk

Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. De resourcegroep en alle resources daarin worden permanent verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de resources voor dit artikel in een resourcegroep hebt gemaakt die andere resources bevat die u wilt behouden, moet u elke resource afzonderlijk verwijderen uit het deelvenster in plaats van dat u de resourcegroep verwijdert.

  1. Meld u aan bij de Azure-portal en selecteer Resourcegroepen.
  2. Voer de naam van de resourcegroep in het vak Filteren op naam in.
  3. Selecteer in de resultatenlijst de resourcegroepnaam om een overzicht te bekijken.
  4. Selecteer Resourcegroep verwijderen.
  5. U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Voer de naam van de resourcegroep in ter bevestiging en selecteer Verwijderen.

Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.

Volgende stappen

In deze zelfstudie maakt u een App Configuration-sleutel die verwijst naar een waarde die is opgeslagen in Key Vault. Zie de referentiedocumentatie voor meer vragen en bevat alle details over de werking van de Spring Cloud Azure-app Configuration-bibliotheek. Ga door naar de volgende zelfstudie voor meer informatie over het gebruik van functievlaggen in uw Java Spring-toepassing.