Compartir vía


Autenticación de Azure con Java y Azure Identity

En este artículo se proporciona información general sobre la biblioteca de identidades de Azure para Java, que proporciona compatibilidad con la autenticación de tokens de Microsoft Entra en Azure SDK para Java. Esta biblioteca proporciona un conjunto de implementaciones de TokenCredential que se pueden usar para construir clientes de Azure SDK que admitan la autenticación de tokens de Microsoft Entra.

La biblioteca Azure Identity admite actualmente:

Siga estos vínculos anteriores para más información sobre los detalles de cada uno de estos enfoques de autenticación. En el resto de este artículo, presentaremos la clase DefaultAzureCredential que se usa habitualmente y los temas relacionados.

Adición de las dependencias de Maven

Para agregar la dependencia de Maven, incluya el siguiente código XML en el archivo pom.xml del proyecto. Reemplace {version_number} por el número de versión estable más reciente de la versión, como se muestra en la página de biblioteca de identidades de Azure.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>{version_number}</version>
</dependency>

Conceptos clave

Hay dos conceptos clave para comprender la biblioteca Azure Identity: el concepto de credencial y la implementación más común de esa credencial, DefaultAzureCredential.

Una credencial es una clase que contiene o puede obtener los datos necesarios para que un cliente del servicio autentique las solicitudes. Los clientes del servicio en Azure SDK aceptan las credenciales cuando se construyen y usan esas credenciales para autenticar las solicitudes que se realizan al servicio.

La biblioteca de identidades de Azure se centra en la autenticación de OAuth con Microsoft Entra ID y ofrece varias clases de credenciales que pueden adquirir un token de Microsoft Entra para autenticar solicitudes de servicio. Todas las clases de credenciales de esta biblioteca son implementaciones de la clase abstracta TokenCredential de azure-core y puede usar cualquiera de ellas para construir clientes del servicio que se puedan autenticar con un elemento TokenCredential.

DefaultAzureCredential es adecuado para la mayoría de los escenarios en los que la aplicación está diseñada para ejecutarse en la nube de Azure. DefaultAzureCredential combina las credenciales que se usan normalmente para autenticarse cuando se implementa con las credenciales que se usan para autenticarse en un entorno de desarrollo. Para obtener más información, incluidos los ejemplos que usan DefaultAzureCredential, consulte la sección DefaultAzureCredential de Autenticación de aplicaciones Java hospedadas en Azure.

Ejemplos

Como se indica en Uso de Azure SDK para Java, las bibliotecas de administración difieren ligeramente. Una de las formas en las que difieren es que hay bibliotecas para consumir los servicios de Azure, llamadas bibliotecas cliente, y bibliotecas para administrar los servicios de Azure, llamadas bibliotecas de administración. En las secciones siguientes, hay una rápida información general a la autenticación en las bibliotecas cliente y de administración.

Autenticación de las bibliotecas cliente de Azure

En el siguiente ejemplo se muestra la autenticación de SecretClient de la biblioteca cliente azure-security-keyvault-secrets con DefaultAzureCredential.

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<your Key Vault name>.vault.azure.net")
  .credential(new DefaultAzureCredentialBuilder().build())
  .buildClient();

Autenticación de las bibliotecas de administración de Azure

Las bibliotecas de administración de Azure usan las mismas API de credenciales que las bibliotecas cliente de Azure, pero también requieren un identificador de suscripción de Azure para administrar los recursos de Azure de esa suscripción.

Puede encontrar el identificador de suscripción en la página Suscripciones de Azure Portal. Como alternativa, use el siguiente comando de la CLI de Azure para obtener los identificadores de suscripción:

az account list --output table

Puede establecer el identificador de suscripción en la variable de entorno AZURE_SUBSCRIPTION_ID. AzureProfile selecciona este identificador como el identificador de suscripción predeterminado durante la creación de una instancia de Manager, como se muestra en el ejemplo siguiente:

AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
        new DefaultAzureCredentialBuilder().build(),
        new AzureProfile(AzureEnvironment.AZURE))
    .withDefaultSubscription();

DefaultAzureCredential que se usa en este ejemplo autentica una instancia de AzureResourceManager mediante DefaultAzureCredential. También puede usar otras implementaciones de credenciales de tokens que se ofrecen en la biblioteca Azure Identity en lugar de DefaultAzureCredential.

Solución de problemas

Para obtener instrucciones, consulte Solución de problemas de autenticación de Azure Identity.

Pasos siguientes

En este artículo se ha presentado la funcionalidad de Azure Identity disponible en Azure SDK para Java. Describe DefaultAzureCredential como común y adecuado en muchos casos. En los artículos siguientes se describen otras maneras de autenticarse mediante la biblioteca Azure Identity y se proporciona más información sobre DefaultAzureCredential: