Delen via


Azure Key Vault gebruiken om TLS/SSL-certificaten te leveren aan de JVM

In dit artikel wordt beschreven hoe u Azure Key Vault integreert in de JVM om TLS/SSL-certificaten te leveren.

De JCA-provider toevoegen aan het java.security-bestand

Als u de JCA-provider wilt registreren, moet de JVM hiervan op de hoogte zijn. Voer de volgende stappen uit om deze taak uit te voeren:

  1. Maak een kopie van het bestand java.security in de JVM-installatie en noem het bestand my.java.security.

  2. Zoek in het bestand naar de regel security.provider.<maximum-value>. Vervang de tijdelijke aanduiding <maximum-value> door de maximumwaarde op deze positie onder alle vermeldingen. Bijvoorbeeld: security.provider.13=SunPKCS11.

  3. Verhoog het aantal van deze vermelding met 1. security.provider.13 moet bijvoorbeeld security.provider.14worden.

  4. Voeg de volgende regel toe:

    security.provider.14=com.azure.security.keyvault.jca.KeyVaultJcaProvider
    

Notitie

Zorg ervoor dat elke security.provider.<X> vermelding een andere numerieke waarde voor <X>heeft en ze incrementeel geordend houden vanaf 1.

Uw toepassing uitvoeren

Als u uw toepassing wilt uitvoeren, gebruikt u de volgende stappen en vervangt u de <...> tijdelijke aanduidingen door uw eigen waarden:

  1. Voeg het azure-security-keyvault-jca-X.Y.Z.jar-bestand toe aan het class path. Als u bijvoorbeeld wilt integreren met Tomcat 9, moet u het volledige pad van het bestand azure-security-keyvault-jca-X.Y.Z.jar toevoegen aan het Java-klassepad met behulp van tomcat9w.exe.

  2. Voeg -Djava.security.properties==my.java.security toe aan de opdrachtregel.

  3. Voeg -Dazure.keyvault.uri=<your-keyvault-uri> toe aan de opdrachtregel om aan te geven welke Azure Key Vault moet worden gebruikt. Bijvoorbeeld: -Dazure.keyvault.uri=https://some.vault.azure.net/.

  4. Voeg de argumenten toe die worden aangegeven in de volgende lijst, afhankelijk van uw scenario:

    • Als u verifieert met behulp van een service-principal, voegt u de volgende argumenten toe:

      • -Dazure.keyvault.tenant-id=<your-tenant-id>
      • -Dazure.keyvault.client-id=<your-client-id>
      • -Dazure.keyvault.client-secret=<your-client-secret>
    • Als u verifieert met behulp van een door het systeem toegewezen beheerde identiteit, zijn er geen argumenten meer vereist.

    • Als u verifieert met een door de gebruiker toegewezen beheerde identiteit, voegt u het volgende argument toe:

      • -Dazure.keyvault.managed-identity=<object-id-of-your-user-managed-identity>

Voor meer informatie over deze verificatiescenario's, zie toepassings- en service-principalobjecten in Microsoft Entra ID en hoe beheerde identiteiten voor Azure-resources werken met virtuele Azure-machines.

Een service-principal gebruiken

Als u een Azure-client-id en een Azure-clientgeheim wilt maken, gebruikt u de volgende opdracht, waarbij u de tijdelijke aanduidingen van de <...> vervangt door uw eigen waarden. Zorg ervoor dat u de geretourneerde waarden opslaat, zoals appId, passworden 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}

Sla de geretourneerde waarden op, zodat u ze later kunt gebruiken.

Zorg ervoor dat de client die is opgegeven door CLIENT_ID toegang heeft tot de doelsleutelkluis. Gebruik de volgende opdracht om toegang te verlenen, waarbij u de tijdelijke aanduiding <your-key-vault-name> vervangt:

az keyvault set-policy \
    --name <your-key-vault-name> \
    --spn ${CLIENT_ID} \
    --secret-permissions get list \
    --certificate-permissions get list \
    --key-permissions get list

Een beheerde identiteit gebruiken

Als u een door het systeem toegewezen beheerde identiteit wilt inschakelen of een door de gebruiker toegewezen beheerde identiteit wilt maken, volgt u de instructies in Beheerde identiteiten configureren voor Azure-resources op een Azure-VM met behulp van Azure CLI

Nadat u de object-id van de beheerde identiteit hebt opgehaald, gebruikt u de volgende opdracht om het toegangsbeleid van uw Key Vault voor uw beheerde identiteit te maken:

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

Notitie

De object-id van de beheerde identiteit wordt ook wel de principal-id genoemd bij het gebruik van een door de gebruiker toegewezen beheerde identiteit.

Voorbeelden van TLS/SSL aan client-/serverzijde

Zie de sectie Voorbeelden van de JCA-clientbibliotheek van Azure Key Vault voor Javavoor voorbeelden van TLS/SSL aan de client-/serverzijde.

Volgende stappen