Autenticazione da servizio a servizio con Azure Data Lake Storage Gen2 tramite Java

Questo articolo illustra come usare Java SDK per eseguire l'autenticazione da servizio a servizio con Azure Data Lake Storage Gen2. L'autenticazione dell'utente finale con Data Lake Storage Gen2 con Java SDK non è supportata.

Prerequisiti

Autenticazione da servizio a servizio

  1. Creare un progetto Maven usando l'archetipo mvn dalla riga di comando o con un IDE. Per istruzioni su come creare un progetto Java usando IntelliJ, vedere qui. Per istruzioni su come creare un progetto Java usando Eclipse, vedere qui.

  2. Aggiungere le dipendenze seguenti al file pom.xml di Maven. Aggiungere il frammento di codice seguente prima del <tag /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 prima dipendenza consiste nell'usare l'SDK Data Lake Storage Gen2 (azure-storage-file-datalake) dal repository Maven. La seconda dipendenza consiste nel specificare il framework di registrazione (slf4j-nop) da usare per questa app. L'SDK di Data Lake Storage Gen2 usa la facciata di registrazione slf4j, che consente di scegliere tra diversi framework di registrazione comuni, ad esempio log4j, registrazione Java, logback o nessuna registrazione. Per questo esempio la registrazione viene disabilitata, quindi si usa il binding slf4j-nop. Per usare altre opzioni di registrazione nell'app, vedere Dichiarazione delle dipendenze del progetto per la registrazione.

  3. Aggiungere le istruzioni import seguenti all'applicazione.

    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. Usare il frammento di codice seguente nell'app Java per ottenere un token per l'app Web Active Directory creata in precedenza usando una della classe di StorageSharedKeyCredential (nell'esempio seguente viene credentialusato ). Il provider di token memorizza nella cache le credenziali usate per ottenere il token in memoria e rinnova automaticamente il token se sta per scadere. È possibile creare sottoclassi personalizzate di StorageSharedKeyCredential in modo che i token vengano ottenuti dal codice del cliente. Per il momento verrà usata quella fornita con il SDK.

    Sostituire FILL-IN-HERE con i valori effettivi per l'applicazione 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();
    

L'SDK di Data Lake Storage Gen2 offre metodi pratici che consentono di gestire i token di sicurezza necessari per comunicare con l'account Data Lake Storage Gen2. Tuttavia, l'SDK non impone che vengano usati solo questi metodi. È possibile usare anche qualsiasi altro mezzo per ottenere il token, ad esempio usando la libreria client di Identità di Azure o il codice personalizzato.

Passaggi successivi

In questo articolo si è appreso come usare l'autenticazione dell'utente finale per l'autenticazione con Data Lake Storage Gen2 usando Java SDK. È ora possibile esaminare gli articoli seguenti che illustrano come usare Java SDK per usare Data Lake Storage Gen2.