Compartir a través de


Uso de Azure Key Vault para entregar certificados TLS/SSL a JVM

En este artículo se describe cómo integrar Azure Key Vault en la JVM para entregar certificados TLS/SSL.

Agregue el proveedor JCA al archivo java.security.

Para registrar el proveedor de JCA, JVM debe conocerlo. Para realizar esta tarea, siga estos pasos:

  1. Realice una copia del archivo java.security dentro de la instalación de JVM y asigne un nombre al archivo my.java.security.

  2. Dentro del archivo, busque la línea security.provider.<maximum-value>. Sustituya el marcador de posición <maximum-value> por el valor máximo de esta posición entre todas las entradas. Por ejemplo: security.provider.13=SunPKCS11.

  3. Incremente el número de esta entrada en 1. Por ejemplo, security.provider.13 debe convertirse en security.provider.14.

  4. Agregue la línea siguiente:

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

Nota

Asegúrese de que cada entrada de security.provider.<X> tiene un valor de número diferente para <X>y manténgalos ordenados incrementalmente a partir de 1.

Ejecución de la aplicación

Para ejecutar la aplicación, siga estos pasos y reemplace los marcadores de posición <...> por sus propios valores:

  1. Agregue el archivo azure-security-keyvault-jca-X.Y.Z.jar a la ruta de clase. Por ejemplo, si desea integrar con Tomcat 9, debe agregar la ruta de acceso completa del archivo azure-security-keyvault-jca-X.Y.Z.jar a la ruta de acceso de clase de Java mediante tomcat9w.exe.

  2. Agregue -Djava.security.properties==my.java.security a la línea de comandos.

  3. Agregue -Dazure.keyvault.uri=<your-keyvault-uri> a la línea de comandos para indicar qué instancia de Azure Key Vault va a usar. Por ejemplo: -Dazure.keyvault.uri=https://some.vault.azure.net/.

  4. Agregue los argumentos indicados en la lista siguiente, en función de su escenario:

    • Si se autentica mediante una entidad de servicio, agregue los argumentos siguientes:

      • -Dazure.keyvault.tenant-id=<your-tenant-id>
      • -Dazure.keyvault.client-id=<your-client-id>
      • -Dazure.keyvault.client-secret=<your-client-secret>
    • Si se autentica mediante una identidad administrada asignada por el sistema, no se requieren más argumentos.

    • Si se autentica mediante una identidad administrada asignada por el usuario, agregue el siguiente argumento:

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

Para obtener más información sobre estos escenarios de autenticación, consulte Objetos de aplicación y de entidad de servicio en Microsoft Entra ID y Cómo funcionan las identidades administradas para los recursos de Azure con las máquinas virtuales de Azure.

Uso de una entidad de servicio

Para crear un identificador de cliente de Azure y un secreto de cliente de Azure, use el comando siguiente, reemplazando los marcadores de posición <...> por sus propios valores. Asegúrese de almacenar los valores devueltos, como appId, passwordy 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}

Almacene los valores devueltos para poder usarlos más adelante.

Asegúrese de que el cliente especificado por CLIENT_ID pueda acceder a la bóveda de claves de destino. Para conceder acceso, use el siguiente comando, reemplazando el marcador de posición <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

Uso de una identidad administrada

Para habilitar una identidad administrada asignada por el sistema o crear una identidad administrada asignada por el usuario, siga las instrucciones de Configuración de identidades administradas para recursos de Azure en una máquina virtual de Azure mediante la CLI de Azure

Después de obtener el identificador de objeto de la identidad administrada, use el siguiente comando para crear la directiva de acceso de Key Vault para la identidad administrada:

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

Nota

El identificador de objeto de la identidad administrada también se denomina identificador principal cuando se usa una identidad administrada asignada por el usuario.

Ejemplos de TLS/SSL del lado cliente/servidor

Para ver ejemplos de TLS/SSL del lado del cliente o del servidor, consulte la sección Ejemplos de la biblioteca del cliente JCA de Azure Key Vault para Java.

Pasos siguientes