Tjänst-till-tjänst-autentisering med Azure Data Lake Storage Gen2 med Java

I den här artikeln får du lära dig mer om hur du använder Java SDK för att utföra tjänst-till-tjänst-autentisering med Azure Data Lake Storage Gen2. Slutanvändarautentisering med Data Lake Storage Gen2 som använder Java SDK stöds inte.

Förutsättningar

Tjänst-till-tjänst-autentisering

  1. Skapa ett Maven-projekt med mvn archetype från kommandoraden eller med hjälp av en IDE. Anvisningar för hur du skapar ett Java-projekt med IntelliJ finns här. Anvisningar för hur du skapar ett Java-projekt med Eclipse finns här.

  2. Lägg till följande beroenden till din Maven pom.xml-fil. Lägg till följande kodfragment före taggen< /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>
    

    Det första beroendet är att använda Data Lake Storage Gen2 SDK (azure-storage-file-datalake) från Maven-lagringsplatsen. Det andra beroendet är att ange det loggningsramverk (slf4j-nop) som ska användas för den här appen. Data Lake Storage Gen2 SDK använder slf4j-loggningsfasaden, som gör att du kan välja bland ett antal populära loggningsramverk, till exempel log4j, Java-loggning, loggning eller ingen loggning. I det här exemplet inaktiverar vi loggning, därför använder vi slf4j-nop bindning. Om du vill använda andra loggningsalternativ i din app kan du läsa Förklara projektberoenden för loggning.

  3. Lägg till följande importuttryck i programmet.

    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. Använd följande kodfragment i Java-appen för att hämta en token för Active Directory-webbappen som du skapade tidigare med hjälp av en av klasserna i StorageSharedKeyCredential (i följande exempel används credential). Tokenprovidern cachelagrar de autentiseringsuppgifter som används för att hämta token i minnet och förnyar token automatiskt om den håller på att upphöra att gälla. Det går att skapa egna underklasser så StorageSharedKeyCredential att token hämtas av din kundkod. För tillfället ska vi bara använda den som anges i SDK:t.

    Ersätt FILL-IN-HERE med de faktiska värdena för Microsoft Entra-webbprogrammet.

    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();
    

Data Lake Storage Gen2 SDK innehåller praktiska metoder som gör att du kan hantera de säkerhetstoken som behövs för att kommunicera med Data Lake Storage Gen2-kontot. SDK:t kräver dock inte att endast dessa metoder används. Du kan också använda andra sätt att hämta token, till exempel att använda Azure Identity-klientbiblioteket eller din egen anpassade kod.

Nästa steg

I den här artikeln har du lärt dig hur du använder slutanvändarautentisering för att autentisera med Data Lake Storage Gen2 med hjälp av Java SDK. Nu kan du titta på följande artiklar som beskriver hur du använder Java SDK för att arbeta med Data Lake Storage Gen2.