Partager via


Authentification de service à service auprès de Data Lake Storage Gen2 à l’aide de Java

Dans cet article, vous allez apprendre à utiliser le Kit de développement logiciel (SDK) Java pour effectuer une authentification de service à service auprès de Azure Data Lake Storage Gen2. L’authentification des utilisateurs finaux auprès de Data Lake Storage Gen2 avec le SDK Java n’est pas prise en charge.

Prérequis

Authentification de service à service

  1. Créez un projet Maven en utilisant mvn archetype à partir de la ligne de commande ou à l’aide d’un environnement de développement intégré (IDE). Vous trouverez ici des instructions sur la création d’un projet Java à l’aide d’IntelliJ. Vous trouverez ici des instructions sur la création d’un projet à l’aide d’Eclipse.

  2. Ajoutez les dépendances suivantes à votre fichier Maven pom.xml. Ajoutez l’extrait de code suivant avant la balise </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 première dépendance consiste à utiliser le kit de développement logiciel (SDK) Data Lake Storage Gen2 (azure-storage-file-datalake) à partir du référentiel Maven. La seconde dépendance consiste à spécifier le framework de journalisation (slf4j-nop) à utiliser pour cette application. Le SDK Data Lake Storage Gen2 utilise la façade de journalisation slf4j. Cela vous permet de choisir parmi plusieurs frameworks de journalisation populaires, par exemple log4j, la journalisation Java, Logback. Vous pouvez aussi n’utiliser aucune journalisation. Pour cet exemple, nous désactivons la journalisation et, par conséquent, nous utilisons la liaison slf4j-nop. Pour utiliser d’autres options de journalisation dans votre application, consultez déclaration des dépendances de projet pour la journalisation.

  3. Ajoutez les instructions import ci-après à votre application.

    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. Utilisez l’extrait de code ci-après dans votre application Java afin d’obtenir un jeton pour l’application web Active Directory que vous avez créée précédemment à l’aide de l’une des classes de StorageSharedKeyCredential (l’exemple ci-après utilise credential). Le fournisseur de jetons met en cache les informations d’identification utilisées pour obtenir le jeton en mémoire, et renouvelle automatiquement le jeton s’il est sur le point d’expirer. Il est possible de créer vos propres sous-classes de StorageSharedKeyCredential afin que les jetons soient obtenus par votre code client. Toutefois, pour le moment, utilisons simplement le jeton fourni dans le Kit de développement logiciel (SDK).

    Remplacez FILL-IN-HERE par les valeurs réelles de l’application web 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();
    

Le kit de développement logiciel (SDK) Data Lake Storage Gen2 propose des méthodes pratiques pour gérer les jetons de sécurité nécessaires et ainsi communiquer avec le compte Data Lake Storage Gen2. Toutefois, le Kit de développement (SDK) n’impose pas d’utiliser ces seules méthodes. Vous pouvez utiliser tout autre moyen pour obtenir le jeton, par exemple à l’aide de la bibliothèque de client Azure Identity, ou de votre propre code personnalisé.

Étapes suivantes

Dans cet article, vous avez appris à utiliser l’authentification des utilisateurs finaux auprès de Data Lake Storage Gen2 à l’aide du Kit de développement logiciel (SDK) Java. Vous pouvez à présent consulter les articles ci-après, qui expliquent comment utiliser le Kit de développement logiciel (SDK) Java pour travailler avec Data Lake Storage Gen2.