Autenticación entre servicios con Azure Data Lake Storage Gen2 mediante Java

En este artículo va a aprender a usar el SDK de Java para realizar la autenticación entre servicios con Azure Data Lake Storage Gen2. No se admite la autenticación de usuario final con Data Lake Storage Gen2 mediante el SDK de Java.

Requisitos previos

Autenticación entre servicios

  1. Cree un proyecto de Maven mediante mvn archetype en la línea de comandos o con un entorno de desarrollo integrado. Para ver instrucciones sobre cómo crear un proyecto de Java mediante IntelliJ, consulte este artículo. Para ver instrucciones sobre cómo crear un proyecto con Eclipse, consulte este artículo.

  2. Agregue las siguientes dependencias a su archivo pom.xml de Maven. Agregue el siguiente fragmento de código antes de la etiqueta </project>:

    <dependencies>
      <dependency>
          <groupId>com.azure</groupId>
          <artifactId>azure-storage-file-datalake</artifactId>
          <version>12.6.0</version>
      </dependency>
      <dependency>
          <groupId>com.azure</groupId>
          <artifactId>azure-identity</artifactId>
          <version>1.3.3</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>1.7.21</version>
      </dependency>
    </dependencies>
    

    La primera dependencia es el uso del SDK de Data Lake Storage Gen2 (azure-storage-file-datalake) desde el repositorio de Maven. La segunda dependencia consiste en especificar la plataforma de registro (slf4j-nop) que se va a usar para esta aplicación. El SDK de Data Lake Storage Gen2 usa la fachada de registro slf4j, que permite elegir entre una serie de plataformas de registro populares, como log4j, registro de Java, Logback, o ningún registro. En este ejemplo, se deshabilita el registro; por tanto, se usa el enlace slf4j-nop. Para usar otras opciones de registro en la aplicación, vea Declaración de dependencias del proyecto para el registro.

  3. Agregue las siguientes instrucciones de importación a la aplicación.

    import com.azure.identity.ClientSecretCredential;
    import com.azure.identity.ClientSecretCredentialBuilder;
    import com.azure.storage.file.datalake.DataLakeDirectoryClient;
    import com.azure.storage.file.datalake.DataLakeFileClient;
    import com.azure.storage.file.datalake.DataLakeServiceClient;
    import com.azure.storage.file.datalake.DataLakeServiceClientBuilder;
    import com.azure.storage.file.datalake.DataLakeFileSystemClient;
    import com.azure.storage.file.datalake.models.ListPathsOptions;
    import com.azure.storage.file.datalake.models.PathAccessControl;
    import com.azure.storage.file.datalake.models.PathPermissions;
    
  4. Use el siguiente fragmento de código de la aplicación de Java para obtener un token para la aplicación web de Active Directory que se ha creado anteriormente con una de las clases de StorageSharedKeyCredential (el siguiente ejemplo usa credential). El proveedor de tokens almacena en caché las credenciales que se usan para obtener el token en memoria, y renueva el token de forma automática si está a punto de expirar. Puede crear sus propias subclases de StorageSharedKeyCredential para que los tokens se obtengan mediante su código de cliente. Por ahora vamos a usar simplemente el que se proporciona en el SDK.

    Reemplace FILL-IN-HERE por los valores reales de la aplicación web de Microsoft Entra.

    private static String clientId = "FILL-IN-HERE";
    private static String tenantId = "FILL-IN-HERE";
    private static String clientSecret = "FILL-IN-HERE";
    
    ClientSecretCredential credential = new ClientSecretCredentialBuilder().clientId(clientId).tenantId(tenantId).clientSecret(clientSecret).build();
    

El SDK de Data Lake Storage Gen2 proporciona métodos útiles que permiten administrar los tokens de seguridad necesarios para comunicarse con la cuenta de Data Lake Storage Gen2. Pero el SDK no obliga a que se usen solo estos métodos. También puede usar cualquier otro medio de obtención de tokens, como la biblioteca cliente de Azure Identity o su propio código personalizado.

Pasos siguientes

En este artículo ha aprendido a usar la autenticación de usuario final para autenticarse en Data Lake Storage Gen2 mediante el SDK de Java. Ahora puede ver los siguientes artículos, que tratan sobre cómo usar el SDK de Java para trabajar con Data Lake Storage Gen2.