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
- Předplatné Azure – Vytvořte si ho zdarma .
- Podporovaná sada Java Development Kit (JDK) s verzí 8.
- Apache Maven verze 3,0 nebo vyšší.
Vytvoření trezoru
V levém horním rohu Azure Portal vyberte možnost vytvořit prostředek :

Do vyhledávacího pole zadejte Key Vault.
V seznamu výsledků vyberte na levé straně trezory klíčů .
V trezorech klíčů vyberte Přidat.
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í.
Ostatní možnosti Vytvoření trezoru klíčů ponechte výchozí hodnoty.
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.

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.
- Na stránkách vlastností Key Vault vyberte tajné klíče.
- Vyberte Generovat/importovat.
- 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.
- Ponechte druhé vytvořit vlastnosti tajného klíče s výchozími hodnotami.
- Vyberte Vytvořit.
Přidat odkaz Key Vault do konfigurace aplikace
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.
Vyberte Průzkumník konfigurace.
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
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-authTato 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/" }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 getSpuš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>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
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.
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}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; }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(); }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(); } }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(); } }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.AppConfigurationSestavte aplikaci pro jarní spouštění pomocí Maven a spusťte ji například takto:
mvn clean package mvn spring-boot:runPo 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ů.
- Přihlaste se k Azure Portala vyberte skupiny prostředků.
- Do pole filtrovat podle názvu zadejte název vaší skupiny prostředků.
- V seznamu výsledků vyberte název skupiny prostředků, aby se zobrazil přehled.
- Vyberte Odstranit skupinu prostředků.
- 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.