Dela via


Självstudie: Använda Key Vault-referenser i en Java Spring-app

I den här självstudien får du lära dig hur du använder Azure App Configuration-tjänsten tillsammans med Azure Key Vault. Appkonfiguration och Key Vault är kompletterande tjänster som används sida vid sida i de flesta programdistributioner.

App Configuration hjälper dig att använda tjänsterna tillsammans genom att skapa nycklar som refererar till värden som lagras i Key Vault. När App Configuration skapar sådana nycklar lagras URI:erna för Key Vault-värden i stället för själva värdena.

Ditt program använder appkonfigurationsklientprovidern för att hämta Key Vault-referenser, precis som för andra nycklar som lagras i App Configuration. I det här fallet är de värden som lagras i App Configuration URI:er som refererar till värdena i Key Vault. De är inte Key Vault-värden eller autentiseringsuppgifter. Eftersom klientprovidern identifierar nycklarna som Key Vault-referenser använder den Key Vault för att hämta sina värden.

Ditt program ansvarar för att autentiseras korrekt till både App Configuration och Key Vault. De två tjänsterna kommunicerar inte direkt.

Den här självstudien visar hur du implementerar Key Vault-referenser i din kod. Den bygger på webbappen som introducerades i snabbstarten. Innan du fortsätter, slutför skapa en Java Spring-app med App Configuration först.

Du kan använda valfri kodredigerare för att utföra stegen i den här självstudien. Visual Studio Code är till exempel en plattformsoberoende kodredigerare som är tillgänglig för operativsystemen Windows, macOS och Linux.

I den här självstudien lär du dig att:

  • Skapa en appkonfigurationsnyckel som refererar till ett värde som lagras i Key Vault.
  • Få åtkomst till värdet för den här nyckeln från ett Java Spring-program.

Förutsättningar

Skapa ett nyckelvalv

  1. Logga in på Azure Portal och välj sedan Skapa en resurs.

  2. Ange Key Vault i sökrutan. I resultatlistan väljer du Key Vault.

  3. På sidan Key Vault väljer du Skapa.

  4. På sidan Skapa ett nyckelvalv anger du följande information:

    • För Prenumeration: Välj en prenumeration.
    • För Resursgrupp: Ange namnet på en befintlig resursgrupp eller välj Skapa ny och ange ett resursgruppsnamn.
    • För Key Vault-namn: Ange ett unikt namn.
    • För Region: Välj en plats.
  5. Använd standardvärdena för de andra alternativen.

  6. Välj Förhandsgranska + skapa.

  7. När systemet har verifierat och visar dina indata väljer du Skapa.

I det här läget är ditt Azure-konto det enda som har behörighet att komma åt det nya valvet.

Lägga till en hemlighet i Key Vault

Lägg till en hemlighet i valvet för att testa hämtningen av Key Vault. Hemligheten kallas Meddelande och dess värde är "Hello from Key Vault".

  1. I resursmenyn för nyckelvalvet, välj Objekt> Hemligheter.

  2. Välj Generera/Importera.

  3. I dialogrutan Skapa en hemlighet anger du följande värden:

    • För uppladdningsalternativ: Ange Manuell.
    • För Namn: Ange meddelande.
    • För Hemligt värde: Ange Hello från Key Vault.
  4. Använd standardvärdena för de andra alternativen.

  5. Välj Skapa.

Lägga till en Key Vault-referens till App Configuration

  1. Logga in på Azure-portalen. Välj Alla resurser och välj sedan din App Configuration butik.

  2. Välj Configuration Explorer.

  3. Välj + Skapa>key vault-referens och ange sedan följande värden:

    • Nyckel: Ange /application/config.keyVaultMessage.
    • Etikett: Lämna det här värdet tomt.
    • Prenumeration, Resursgrupp och Nyckelvalv: Ange de värden som motsvarar det nyckelvalv som du skapade i föregående avsnitt.
    • Hemlighet: Välj hemligheten med namnet Meddelande som du skapade i föregående avsnitt.

Ge din app åtkomst till Key Vault

Ditt program använder DefaultAzureCredential för att autentisera till både App Configuration och Key Vault. Den här autentiseringsuppgiften fungerar automatiskt med hanterade identiteter i Azure och med dina autentiseringsuppgifter för utvecklare lokalt.

  1. Ge din identitet åtkomst till Key Vault. Tilldela rollen Key Vault Secrets User till ditt användarkonto eller din hanterade identitet:

    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. Ge din identitet åtkomst till App Configuration. Tilldela rollen App Configuration Data Reader :

    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>
    

Uppdatera koden så att den använder en Key Vault-referens

  1. Skapa en miljövariabel med namnet APP_CONFIGURATION_ENDPOINT. Ställ in dess värde på slutpunkten för din App-konfigurationsbutik. Du hittar slutpunkten på bladet Åtkomstnycklar i Azure Portal. Starta om kommandotolken så att ändringen börjar gälla.

  2. Öppna konfigurationsfilen i resursmappen. Uppdatera den här filen för att använda APP_CONFIGURATION_ENDPOINT värdet. Ta bort referenser till en anslutningssträng i den här filen.

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

Anteckning

Du kan också använda globala konfigurationer för Spring Cloud Azure för att ansluta till Key Vault.

  1. Öppna MyProperties.java. Lägg till en ny variabel med namnet keyVaultMessage:

    private String keyVaultMessage;
    
    public String getKeyVaultMessage() {
        return keyVaultMessage;
    }
    
    public void setKeyVaultMessage(String keyVaultMessage) {
        this.keyVaultMessage = keyVaultMessage;
    }
    
  2. Öppna HelloController.java. Uppdatera getMessage-metoden så att den innehåller meddelandet som hämtats från Key Vault.

    @GetMapping
    public String getMessage() {
        return "Message: " + properties.getMessage() + "\nKey Vault message: " + properties.getKeyVaultMessage();
    }
    
  3. Skapa ditt Spring Boot-program med Maven och kör det, till exempel:

    mvn clean package
    mvn spring-boot:run
    
  4. När programmet har körts använder du curl för att testa ditt program, till exempel:

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

    Du ser meddelandet som du angav i App Configuration Store. Du ser också meddelandet som du angav i Key Vault.

Rensa resurser

Om du inte vill fortsätta använda resurserna som skapas i den här artikeln tar du bort resursgruppen som du skapade här för att undvika avgifter.

Viktigt!

Att ta bort en resursgrupp kan inte ångras. Resursgruppen och alla resurser i den tas bort permanent. Se till att du inte oavsiktligt tar bort fel resursgrupp eller resurser. Om du har skapat resurserna för den här artikeln i en resursgrupp som innehåller andra resurser som du vill behålla tar du bort varje resurs individuellt från respektive fönster i stället för att ta bort resursgruppen.

  1. Logga in på Azure Portal och välj Resursgrupper.
  2. I rutan Filtrera efter namn anger du namnet på resursgruppen.
  3. I resultatlistan väljer du resursgruppens namn för att se en översikt.
  4. Välj Ta bort resursgrupp.
  5. Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resursgruppen för att bekräfta och välj Ta bort.

Efter en liten stund tas resursgruppen och alla dess resurser bort.

Nästa steg

I den här självstudien skapade du en appkonfigurationsnyckel som refererar till ett värde som lagras i Key Vault. Mer information finns i referensdokumentationen om hur Spring Cloud Azure App Configuration-biblioteket fungerar. Om du vill lära dig hur du använder funktionsflaggor i ditt Java Spring-program fortsätter du till nästa självstudie.