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:
- Autenticación de Azure en entornos de desarrollo de Java, que habilita:
- Autenticación de IDEA IntelliJ, con la información de inicio de sesión recuperada del kit de herramientas de Azure para IntelliJ.
- Autenticación de Visual Studio Code, con la información de inicio de sesión guardada en el complemento de Azure para Visual Studio Code.
- Autenticación de la CLI de Azure, con la información de inicio de sesión guardada en la CLI de Azure
- Autenticación de aplicaciones hospedadas en Azure, lo que permite:
- Autenticación de credenciales de Azure predeterminada
- Autenticación de identidad administrada
- Autenticación con entidades de servicio, que habilita:
- Autenticación de secreto de cliente
- Autenticación de certificados de cliente
- Autenticación con credenciales de usuario, que habilita:
- Autenticación interactiva del explorador
- Autenticación con código de dispositivo
- Autenticación con nombre de usuario y contraseña
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
:
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de