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řidejte 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 JVM a pojmenujte soubor my.java.security.
Uvnitř souboru vyhledejte řádek
security.provider.<maximum-value>
. Nahraďte zástupný symbol<maximum-value>
maximální hodnotou na této pozici mezi všemi položkami. Příklad:security.provider.13=SunPKCS11
.Zvýší počet této položky o 1. Například
security.provider.13
by se měly 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á položka security.provider.<X>
má pro <X>
jinou číselnou hodnotu a že jsou seřazeny postupně od 1.
Jak spustit aplikaci
Ke spuštění aplikace použijte následující kroky a nahraďte zástupné symboly <...>
vlastními hodnotami:
Přidejte soubor azure-security-keyvault-jca-X.Y.Z.jar do classpathu. 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 classpathu Java pomocí tomcat9w.exe.
Přidejte
-Djava.security.properties==my.java.security
do příkazového řádku.Přidejte do příkazového řádku
-Dazure.keyvault.uri=<your-keyvault-uri>
, abyste označili, kterou službu Azure Key Vault použít. Pří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í hlavní služby, 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 Objekty aplikace a instanční objekty v Microsoft Entra ID a Jak spravované identity pro prostředky Azure pracují s virtuálními počítači Azure.
Použijte služebního hlavního prvku
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
a 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 určený CLIENT_ID
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 zástupný symbol <your-key-vault-name>
:
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 hlavního objektu, když se používá spravovaná identita 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 Azure Key Vault JCA pro javu.
Další kroky
Dokumentace k Javě v azure developer tools