Sdílet prostřednictvím


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:

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

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

  3. Zvýší počet této položky o 1. Například security.provider.13 by se měly 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á 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:

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

  2. Přidejte -Djava.security.properties==my.java.security do příkazového řádku.

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

  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í 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, passworda 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