Compartilhar via


Autenticação serviço a serviço com Azure Data Lake Storage Gen2 usando o Java

Neste artigo, você aprenderá como usar o SDK do Java para fazer a autenticação de serviço a serviço com o Azure Data Lake Storage Gen2. A autenticação do usuário final com o Data Lake Storage Gen2 usando o SDK do Java não é suportada.

Pré-requisitos

Autenticação serviço a serviço

  1. Crie um projeto do Maven usando mvn archetype na linha de comando ou usando um IDE. Para obter instruções sobre como criar um projeto Java usando IntelliJ, veja aqui. Para obter instruções sobre como criar um projeto usando o Eclipse, veja aqui.

  2. Adicione as dependências a seguir para o arquivo pom.xml do Maven. Adicione o seguinte snippet antes da marca </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>
    

    A primeira dependência é usar o SDK do Data Lake Storage Gen2 (azure-storage-file-datalake) do repositório Maven. A segunda dependência serve para especificar qual estrutura de registros (slf4j-nop) usar para o aplicativo. O SDK do Data Lake Storage Gen2 usa a fachada de registros slf4j, o que permite escolher entre uma série de estruturas de registros populares como log4j, registro do Java, logback, etc., ou nenhum registro. Para este exemplo, desabilitamos o registro em log, por isso, usamos a associação slf4j-nop. Para usar outras opções de registro em log em seu aplicativo, consulte Declarando dependências de projeto para registrar em log.

  3. Adicione as seguintes instruções import ao seu aplicativo.

    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 o snippet a seguir em seu aplicativo do Java para obter o token para o aplicativo Web do Active Directory criado anteriormente usando uma das classes de StorageSharedKeyCredential (o exemplo a seguir usa credential). O provedor de token armazena em cache as credenciais usadas para obter o token na memória e renova automaticamente o token se ele estiver prestes a expirar. É possível criar suas próprias subclasses de StorageSharedKeyCredential, assim os tokens são obtidos por meio do seu código de cliente. Por enquanto, vamos usar a que foi fornecida no SDK.

    Substitua FILL-IN-HERE pelos valores reais do aplicativo 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();
    

O SDK do Data Lake Storage Gen2 fornece métodos convenientes que permitem que você gerencie os tokens de segurança necessários para se comunicar com a conta do Data Lake Storage Gen2. No entanto, o SDK não exige que apenas esses métodos sejam usados. Você pode usar qualquer outro meio de obter o token, como usar abiblioteca de clientes do Azure Identity ou seu próprio código personalizado.

Próximas etapas

Neste artigo, você aprendeu como usar a autenticação do usuário final para autenticar com o Data Lake Storage Gen2 usando o SDK do Java. Agora você pode conferir os artigos a seguir que falam sobre como usar o SDK do Java para trabalhar com o Data Lake Storage Gen2.