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

Neste artigo, vai aprender a utilizar o SDK Java para efetuar a autenticação serviço a serviço com Azure Data Lake Storage Gen2. A autenticação do utilizador final com Data Lake Storage Gen2 através do SDK Java não é suportada.

Pré-requisitos

Autenticação serviço a serviço

  1. Crie um projeto Maven com o arquétipo mvn a partir da linha de comandos ou com um IDE. Para obter instruções sobre como criar um projeto Java com IntelliJ, veja aqui. Para obter instruções sobre como criar um projeto com Eclipse, clique aqui.

  2. Adicione as seguintes dependências ao ficheiro pom.xml do Maven. Adicione o seguinte fragmento antes da <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>
    

    A primeira dependência é utilizar o SDK Data Lake Storage Gen2 (azure-storage-file-datalake) do repositório do Maven. A segunda dependência consiste em especificar a arquitetura de registo (slf4j-nop) a utilizar para esta aplicação. O SDK Data Lake Storage Gen2 utiliza a fachada de registo slf4j, que lhe permite escolher entre várias arquiteturas de registo populares, como log4j, registo java, logback ou nenhum registo. Neste exemplo, vamos desativar o registo e, por conseguinte, utilizar o enlace slf4j-nop. Para utilizar outras opções de registo na sua aplicação, veja Declarar dependências do projeto para registo.

  3. Adicione as seguintes declarações de importação à aplicação.

    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. Utilize o fragmento seguinte na sua aplicação Java para obter um token para a aplicação Web do Active Directory que criou anteriormente com uma das classes de StorageSharedKeyCredential (o exemplo seguinte utiliza credential). O fornecedor de tokens coloca em cache as credenciais utilizadas para obter o token na memória e renova automaticamente o token se estiver prestes a expirar. É possível criar as suas próprias subclasses para StorageSharedKeyCredential que os tokens sejam obtidos pelo código do cliente. Por agora, vamos utilizar apenas o fornecido no SDK.

    Substitua FILL-IN-HERE pelos valores reais da aplicação 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 Data Lake Storage Gen2 fornece métodos convenientes que lhe permitem gerir os tokens de segurança necessários para comunicar com a conta Data Lake Storage Gen2. No entanto, o SDK não determina que apenas estes métodos sejam utilizados. Também pode utilizar qualquer outro meio de obter token, como utilizar a biblioteca de cliente da Identidade do Azure ou o seu próprio código personalizado.

Passos seguintes

Neste artigo, aprendeu a utilizar a autenticação do utilizador final para autenticar com Data Lake Storage Gen2 através do SDK Java. Agora, pode ver os seguintes artigos que falam sobre como utilizar o SDK Java para trabalhar com Data Lake Storage Gen2.