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:

  1. Vytvořte kopii souboru java.security uvnitř instalace prostředí JVM a pojmenujte soubor my.java.security.

  2. 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.

  3. Zvýší počet této položky o 1. Například security.provider.13 by se měl stát security.provider.14.

  4. 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:

  1. 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.

  2. Přidejte -Djava.security.properties==my.java.security na příkazový řádek.

  3. 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/.

  4. 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.

Další kroky