Kurz: použití odkazů Key Vault v aplikaci Java pružiny

V tomto kurzu se naučíte používat službu Azure App Configuration Service společně s Azure Key Vault. Konfigurace aplikace a Key Vault jsou doplňkové služby, které jsou používány souběžně ve většině nasazení aplikace.

Konfigurace aplikací pomáhá používat služby dohromady vytvořením klíčů, které odkazují na hodnoty uložené v Key Vault. Když konfigurace aplikace tyto klíče vytvoří, uloží identifikátory URI Key Vault hodnoty místo samotných hodnot.

Vaše aplikace používá poskytovatele klienta konfigurace aplikace k načtení Key Vault odkazů, stejně jako u všech ostatních klíčů uložených v konfiguraci aplikace. V tomto případě hodnoty uložené v konfiguraci aplikace jsou identifikátory URI, které odkazují na hodnoty v Key Vault. Nejsou Key Vault hodnoty ani přihlašovací údaje. Vzhledem k tomu, že poskytovatel klienta rozpozná klíče jako odkazy Key Vault, používá Key Vault k načtení jejich hodnot.

Vaše aplikace zodpovídá za to, že se správně ověřuje jak konfigurace aplikace, tak i Key Vault. Tyto dvě služby nekomunikují přímo.

V tomto kurzu se dozvíte, jak implementovat Key Vault odkazy v kódu. Sestavuje se ve webové aplikaci představené v rychlých startech. Než budete pokračovat, dokončete nejprve Vytvoření aplikace s pružinou v jazyce Java pomocí konfigurace aplikace .

K provedení kroků v tomto kurzu můžete použít libovolný editor kódu. například Visual Studio Code je editor kódu pro různé platformy, který je k dispozici pro operační systémy Windows, macOS a Linux.

V tomto kurzu se naučíte:

  • Vytvořte konfigurační klíč aplikace, který odkazuje na hodnotu uloženou v Key Vault.
  • Přístup k hodnotě tohoto klíče z jarní aplikace Java.

Požadavky

Vytvoření trezoru

  1. V levém horním rohu Azure Portal vyberte možnost vytvořit prostředek :

    Snímek obrazovky ukazuje možnost vytvořit prostředek v Azure Portal.

  2. Do vyhledávacího pole zadejte Key Vault.

  3. V seznamu výsledků vyberte na levé straně trezory klíčů .

  4. V trezorech klíčů vyberte Přidat.

  5. Na pravé straně v části Vytvoření trezoru klíčů zadejte následující informace:

    • Vyberte předplatné a zvolte předplatné.
    • V případě skupiny prostředků vyberte vytvořit novou a zadejte název skupiny prostředků.
    • V názvu trezoru klíčů je vyžadován jedinečný název. Pro tento kurz zadejte Contoso-vault2.
    • V rozevíracím seznamu oblast vyberte umístění.
  6. Ostatní možnosti Vytvoření trezoru klíčů ponechte výchozí hodnoty.

  7. Vyberte Vytvořit.

V tomto okamžiku je váš účet Azure jediným autorizovaným oprávněním pro přístup k tomuto novému trezoru.

Snímek obrazovky se zobrazí v trezoru klíčů.

Přidání tajného klíče do služby Key Vault

Pokud chcete do trezoru přidat tajný klíč, musíte provést několik dalších kroků. V takovém případě přidejte zprávu, kterou můžete použít k otestování Key Vault načítání. Zpráva se nazývá zpráva a v ní uložíte hodnotu Hello z Key Vault.

  1. Na stránkách vlastností Key Vault vyberte tajné klíče.
  2. Vyberte Generovat/importovat.
  3. V podokně vytvořit tajný klíč zadejte následující hodnoty:
    • možnosti Upload: zadejte ruční.
    • Název: zadejte zprávu.
    • Hodnota: zadejte hello z Key Vault.
  4. Ponechte druhé vytvořit vlastnosti tajného klíče s výchozími hodnotami.
  5. Vyberte Vytvořit.

Přidat odkaz Key Vault do konfigurace aplikace

  1. Přihlaste se k webu Azure Portal. Vyberte všechny prostředky a pak vyberte instanci úložiště konfigurace aplikace, kterou jste vytvořili v rychlém startu.

  2. Vyberte Průzkumník konfigurace.

  3. Vyberte + vytvořit > odkaz na Trezor klíčů a pak zadejte následující hodnoty:

    • Klíč: vyberte /Application/config.keyvaultmessage
    • Popisek: Nechte tuto hodnotu prázdnou.
    • Předplatné, Skupina prostředků a Trezor klíčů: zadejte hodnoty odpovídající hodnotám v trezoru klíčů, který jste vytvořili v předchozí části.
    • Tajný kód: vyberte tajný kód s názvem zpráva , kterou jste vytvořili v předchozí části.

Připojení Key Vault

  1. V tomto kurzu použijete k ověřování Key Vault instanční objekt. Tento instanční objekt vytvoříte pomocí příkazu Azure CLI AZ AD SP Create-for-RBAC :

    az ad sp create-for-rbac -n "http://mySP" --role Contributor --sdk-auth
    

    Tato operace vrátí řadu párů klíč/hodnota:

    {
    "clientId": "7da18cae-779c-41fc-992e-0527854c6583",
    "clientSecret": "b421b443-1669-4cd7-b5b1-394d5c945002",
    "subscriptionId": "443e30da-feca-47c4-b68f-1636b75e16b3",
    "tenantId": "35ad10f1-7799-4766-9acf-f2d946161b77",
    "activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
    "resourceManagerEndpointUrl": "https://management.azure.com/",
    "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
    "galleryEndpointUrl": "https://gallery.azure.com/",
    "managementEndpointUrl": "https://management.core.windows.net/"
    }
    
  2. Spusťte následující příkaz, který instančnímu objektu umožní přístup k trezoru klíčů:

    az keyvault set-policy -n <your-unique-keyvault-name> --spn <clientId-of-your-service-principal> --secret-permissions delete get
    
  3. Spuštěním následujícího příkazu Získejte ID objektu a pak ho přidejte do konfigurace aplikace.

    az ad sp show --id <clientId-of-your-service-principal>
    az role assignment create --role "App Configuration Data Reader" --assignee-object-id <objectId-of-your-service-principal> --resource-group <your-resource-group>
    
  4. Vytvořte proměnné prostředí AZURE_CLIENT_ID, AZURE_CLIENT_SECRET a AZURE_TENANT_ID. Použijte hodnoty pro instanční objekt, který byl zobrazen v předchozích krocích. Na příkazovém řádku spusťte následující příkazy a restartujte příkazový řádek, aby se změna projevila:

    setx AZURE_CLIENT_ID "clientId"
    setx AZURE_CLIENT_SECRET "clientSecret"
    setx AZURE_TENANT_ID "tenantId"
    

    pokud používáte Windows PowerShell, spusťte následující příkaz:

    $Env:AZURE_CLIENT_ID = "clientId"
    $Env:AZURE_CLIENT_SECRET = "clientSecret"
    $Env:AZURE_TENANT_ID = "tenantId"
    

    Pokud používáte macOS nebo Linux, spusťte následující příkaz:

    export AZURE_CLIENT_ID ='clientId'
    export AZURE_CLIENT_SECRET ='clientSecret'
    export AZURE_TENANT_ID ='tenantId'
    

Poznámka

Tyto Key Vault přihlašovací údaje se používají jenom v rámci vaší aplikace. Vaše aplikace se ověřuje přímo pomocí Key Vault pomocí těchto přihlašovacích údajů bez použití služby konfigurace aplikace. Key Vault poskytuje ověřování pro vaši aplikaci i službu konfigurace vaší aplikace bez sdílení nebo vystavování klíčů.

Aktualizace kódu pro použití odkazu na Key Vault

  1. Vytvořte proměnnou prostředí s názvem APP_CONFIGURATION_ENDPOINT. Nastavte jeho hodnotu na koncový bod úložiště konfigurace aplikace. Koncový bod najdete v okně přístupové klíče v Azure Portal. Restartováním příkazového řádku umožníte, aby se změna projevila.

  2. Otevřete rutinu Bootstrap. Properties ve složce Resources . Aktualizujte tento soubor, aby se použila hodnota APP_CONFIGURATION_ENDPOINT . Odebere všechny odkazy na připojovací řetězec v tomto souboru.

    spring.cloud.azure.appconfiguration.stores[0].endpoint= ${APP_CONFIGURATION_ENDPOINT}
    
  3. Otevřete MessageProperties. Java. Přidejte novou proměnnou s názvem keyVaultMessage:

    private String keyVaultMessage;
    
    public String getKeyVaultMessage() {
        return keyVaultMessage;
    }
    
    public void setKeyVaultMessage(String keyVaultMessage) {
        this.keyVaultMessage = keyVaultMessage;
    }
    
  4. Otevřete HelloController. Java. Aktualizujte metodu GetMessage tak, aby zahrnovala zprávu načtenou z Key Vault.

    @GetMapping
    public String getMessage() {
        return "Message: " + properties.getMessage() + "\nKey Vault message: " + properties.getKeyVaultMessage();
    }
    
  5. Vytvořte nový soubor s názvem AzureCredentials. Java a přidejte následující kód.

    package com.example.demo;
    
    import com.azure.core.credential.TokenCredential;
    import com.azure.identity.EnvironmentCredentialBuilder;
    import com.azure.spring.cloud.config.AppConfigurationCredentialProvider;
    import com.azure.spring.cloud.config.KeyVaultCredentialProvider;
    
    public class AzureCredentials implements AppConfigurationCredentialProvider, KeyVaultCredentialProvider{
    
        @Override
        public TokenCredential getKeyVaultCredential(String uri) {
            return getCredential();
        }
    
        @Override
        public TokenCredential getAppConfigCredential(String uri) {
            return getCredential();
        }
    
        private TokenCredential getCredential() {
            return new EnvironmentCredentialBuilder().build();
        }
    
    }
    
  6. Vytvořte nový soubor s názvem AppConfiguration. Java. A níže přidejte kód.

    package com.example.demo;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class AppConfiguration {
    
        @Bean
        public AzureCredentials azureCredentials() {
            return new AzureCredentials();
        }
    }
    
  7. Vytvořte nový soubor v adresáři Resources adresáře META-INF s názvem pružiny. továrens a přidejte následující kód.

    org.springframework.cloud.bootstrap.BootstrapConfiguration=\
    com.example.demo.AppConfiguration
    
  8. Sestavte aplikaci pro jarní spouštění pomocí Maven a spusťte ji například takto:

    mvn clean package
    mvn spring-boot:run
    
  9. Po spuštění aplikace použijte k otestování aplikace kudrlinkou . Příklad:

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

    Zobrazí se zpráva, kterou jste zadali v úložišti konfigurace aplikace. Zobrazí se také zpráva, kterou jste zadali v Key Vault.

Vyčištění prostředků

Pokud nechcete dál používat prostředky vytvořené v tomto článku, odstraňte skupinu prostředků, kterou jste tady vytvořili, abyste předešli poplatkům.

Důležité

Odstranění skupiny prostředků je nevratné. Skupina prostředků a všechny prostředky v ní se trvale odstraní. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek v rámci skupiny prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte všechny prostředky jednotlivě z příslušného podokna, místo aby se odstranila skupina prostředků.

  1. Přihlaste se k Azure Portala vyberte skupiny prostředků.
  2. Do pole filtrovat podle názvu zadejte název vaší skupiny prostředků.
  3. V seznamu výsledků vyberte název skupiny prostředků, aby se zobrazil přehled.
  4. Vyberte Odstranit skupinu prostředků.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Zadejte název vaší skupiny prostředků, který chcete potvrdit, a vyberte Odstranit.

Po chvíli se odstraní skupina prostředků a všechny její prostředky.

Další kroky

V tomto kurzu jste vytvořili konfigurační klíč aplikace, který odkazuje na hodnotu uloženou v Key Vault. Pokud se chcete dozvědět, jak používat příznaky funkcí v aplikaci Java pružiny, přejděte k dalšímu kurzu.