Compartir a través de


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 de Java, que proporciona compatibilidad con la autenticación de tokens de Microsoft Entra en el SDK de Azure para Java. Esta biblioteca proporciona un conjunto de TokenCredential implementaciones que puede usar para construir clientes del SDK de Azure que admiten la autenticación de tokens de Microsoft Entra.

La biblioteca Azure Identity admite actualmente:

Siga estos vínculos para obtener más información sobre los detalles de cada uno de estos enfoques de autenticación. En el resto de este artículo, presentamos los temas más usados DefaultAzureCredential y 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 por {version_number} el número de versión estable más reciente de la versión, como se muestra en la página 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 de identidades de Azure: el concepto de una 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 el identificador de Microsoft Entra y ofrece varias clases de credenciales que pueden adquirir un token de Microsoft Entra para autenticar las 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á pensada para ejecutarse en última instancia 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 más información, incluidos ejemplos del uso de DefaultAzureCredential, consulte la sección Credencial de Azure predeterminada de Autenticación de aplicaciones de 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 ejemplo siguiente se muestra cómo autenticar SecretClient desde la biblioteca cliente azure-security-keyvault-secrets mediante 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 identificador de suscripción predeterminado durante la creación de una Manager instancia en el ejemplo siguiente:

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

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

Solucionar problemas

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

Pasos siguientes

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