Partilhar via


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

Neste artigo, você aprenderá sobre como usar o Java SDK para fazer 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 Java SDK não é suportada.

Pré-requisitos

Autenticação entre serviços

  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 trecho antes da <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>
    

    A primeira dependência é usar o SDK do Data Lake Storage Gen2 (azure-storage-file-datalake) do repositório Maven. A segunda dependência é especificar a estrutura de log (slf4j-nop) a ser usada para este aplicativo. O SDK do Data Lake Storage Gen2 usa a fachada de registo slf4j, que permite escolher entre várias estruturas de registo populares, como log4j, registo Java, logback ou nenhum registo. Neste exemplo, vamos desativar o registo e, por conseguinte, utilizar a ligação slf4j-nop. Para utilizar outras opções de registo na sua aplicação, consulte Declaração de 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. Use o trecho a seguir em seu aplicativo Java para obter um token para o aplicativo Web do Ative 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 as suas próprias subclasses de `StorageSharedKeyCredential` para que os tokens sejam obtidos pelo código do cliente. Por enquanto, vamos usar apenas o fornecido 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 gerenciar os tokens de segurança necessários para falar com a conta do Data Lake Storage Gen2. No entanto, o SDK não exige que apenas esses métodos sejam usados. Você também pode usar qualquer outro meio de obter token, como usar a biblioteca de cliente do Azure Identity ou seu próprio código personalizado.

Próximos passos

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