Použití služby Azure Key Vault k doručování certifikátů TLS/SSL do prostředí JVM
Tento článek popisuje, jak integrovat Azure Key Vault do prostředí JVM za účelem doručování certifikátů TLS/SSL.
Přidání zprostředkovatele JCA do souboru java.security
Aby bylo možné zaregistrovat poskytovatele JCA, musí o něm prostředí JVM vědět. K provedení této úlohy použijte následující kroky:
Vytvořte kopii souboru java.security uvnitř instalace prostředí JVM a pojmenujte soubor my.java.security.
Uvnitř souboru vyhledejte řádek
security.provider.<maximum-value>
.<maximum-value>
Zástupný symbol nahraďte maximální hodnotou na této pozici mezi všemi položkami. Například:security.provider.13=SunPKCS11
.Zvýší počet této položky o 1. Například
security.provider.13
by se měl státsecurity.provider.14
.Přidejte následující řádek:
security.provider.14=com.azure.security.keyvault.jca.KeyVaultJcaProvider
Poznámka:
Ujistěte se, že každá security.provider.<X>
položka má jinou číselnou hodnotu pro <X>
a ponechat je přírůstkově seřazené od 1.
Jak spustit aplikaci
Ke spuštění aplikace použijte následující kroky a zástupné symboly nahraďte <...>
vlastními hodnotami:
Přidejte do cesty ke třídě soubor azure-security-keyvault-jca-X.Y.Z.jar. Pokud například chcete integrovat s Tomcat 9, měli byste přidat úplnou cestu k souboru azure-security-keyvault-jca-X.Y.Z.jar do cesty ke třídě Java pomocí souboru tomcat9w.exe.
Přidejte
-Djava.security.properties==my.java.security
na příkazový řádek.Přidejte
-Dazure.keyvault.uri=<your-keyvault-uri>
do příkazového řádku, který označuje, který azure Key Vault se má použít. Například:-Dazure.keyvault.uri=https://some.vault.azure.net/
.V závislosti na vašem scénáři přidejte argumenty uvedené v následujícím seznamu:
Pokud provádíte ověření pomocí instančního objektu, přidejte následující argumenty:
-Dazure.keyvault.tenant-id=<your-tenant-id>
-Dazure.keyvault.client-id=<your-client-id>
-Dazure.keyvault.client-secret=<your-client-secret>
Pokud se ověřujete pomocí spravované identity přiřazené systémem, nejsou vyžadovány žádné další argumenty.
Pokud provádíte ověřování pomocí spravované identity přiřazené uživatelem, přidejte následující argument:
-Dazure.keyvault.managed-identity=<object-id-of-your-user-managed-identity>
Další informace o těchto scénářích ověřování najdete v tématu Aplikační a instanční objekty v Microsoft Entra ID a způsob, jakým spravované identity pro prostředky Azure fungují s virtuálními počítači Azure.
Použití instančního objektu
Pokud chcete vytvořit ID klienta Azure a tajný klíč klienta Azure, použijte následující příkaz a nahraďte <...>
zástupné symboly vlastními hodnotami. Nezapomeňte uložit vrácené hodnoty, například appId
, password
. tenant
export CLIENT_NAME=<your-client-name>
az ad sp create-for-rbac --skip-assignment --name ${CLIENT_NAME}
export CLIENT_ID=$(az ad sp list --display-name ${CLIENT_NAME} | jq -r '.[0].appId')
az ad app credential reset --id ${CLIENT_ID}
Uložte vrácené hodnoty, abyste je mohli později použít.
Ujistěte se, že klient zadaný CLIENT_ID
klientem má přístup k cílové službě Key Vault. Pokud chcete udělit přístup, použijte následující příkaz a nahraďte <your-key-vault-name>
zástupný symbol:
az keyvault set-policy \
--name <your-key-vault-name> \
--spn ${CLIENT_ID} \
--secret-permissions get list \
--certificate-permissions get list \
--key-permissions get list
Použití spravované identity
Pokud chcete povolit spravovanou identitu přiřazenou systémem nebo vytvořit spravovanou identitu přiřazenou uživatelem, postupujte podle pokynů v tématu Konfigurace spravovaných identit pro prostředky Azure na virtuálním počítači Azure pomocí Azure CLI.
Po získání ID objektu spravované identity pomocí následujícího příkazu vytvořte zásadu přístupu služby Key Vault pro vaši spravovanou identitu:
az keyvault set-policy \
--name <your-key-vault-name> \
--object-id <object-id-of-your-managed-identity> \
--secret-permissions get list \
--certificate-permissions get list \
--key-permissions get list
Poznámka:
ID objektu spravované identity se také nazývá ID objektu zabezpečení při použití spravované identity přiřazené uživatelem.
Příklady protokolu TLS/SSL na straně klienta nebo serveru
Příklady protokolu TLS/SSL na straně klienta/serveru najdete v části Příklady klientské knihovny JCA služby Azure Key Vault pro Javu.