다음을 통해 공유


Java를 사용하여 Azure Data Lake Storage Gen2로 서비스 간 인증

이 문서에서는 Java SDK를 사용하여 Azure Data Lake Storage Gen2로 서비스 간 인증을 수행하는 방법에 대해 알아봅니다. Java SDK를 사용하여 Data Lake Storage Gen2로 최종 사용자를 인증하는 기능은 지원되지 않습니다.

필수 조건

서비스 간 인증

  1. 명령줄에서 mvn 아키타입 을 사용하거나 IDE를 사용하여 Maven 프로젝트를 만듭니다. IntelliJ를 사용하여 Java 프로젝트를 만드는 방법에 대한 지침은 여기를 참조 하세요. Eclipse를 사용하여 프로젝트를 만드는 방법에 대한 지침은 여기를 참조 하세요.

  2. Maven pom.xml 파일에 다음 종속성을 추가합니다. /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>
    

    첫 번째 종속성은 Maven 리포지토리에서 Data Lake Storage Gen2 SDK(azure-storage-file-datalake)를 사용하는 것입니다. 두 번째 종속성은 이 앱에 사용하는 로깅 프레임워크(slf4j-nop)를 지정하는 것입니다. Data Lake Storage Gen2 SDK는 slf4j 로깅 외관을 사용하여 log4j, Java 로깅, 로그백 또는 로깅 없음과 같은 인기 있는 여러 로깅 프레임워크 중에서 선택할 수 있습니다. 이 예제에서는 로깅을 사용하지 않도록 설정하므로 slf4j-nop 바인딩을 사용합니다. 앱에서 다른 로깅 옵션을 사용하려면 로깅에 대한 프로젝트 종속성 선언을 참조하세요.

  3. 애플리케이션에 다음 import 문을 추가합니다.

    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. Java 앱에서 다음 코드 조각을 사용하여 앞에서 StorageSharedKeyCredential의 클래스 중 하나(이 예에서는 credential 사용)로 만든 Active Directory 웹앱의 토큰을 가져옵니다. 토큰 공급자는 메모리에 토큰을 가져오는 데 사용 되는 자격 증명을 캐시하고 만료될 경우 토큰을 자동으로 갱신합니다. 사용자 고유의 StorageSharedKeyCredential 서브클래스를 만들 수 있으므로 고객 코드를 통해 토큰을 가져올 수 있습니다. 하지만 지금은 SDK에 제공된 것을 사용하겠습니다.

    FILL-IN-HERE를 Microsoft Entra Web 애플리케이션의 실제 값으로 바꿉니다.

    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는 Data Lake Storage Gen2 계정과 통신하는 데 필요한 보안 토큰을 관리할 수 있는 편리한 방법을 제공합니다. 그러나 SDK에서는 이러한 방법만 필수로 사용해야 하는 것은 아닙니다. Azure ID 클라이언트 라이브러리 또는 사용자 지정 코드를 사용하는 등 토큰을 가져오는 다른 방법도 사용할 수 있습니다.

다음 단계

이 문서에서는 최종 사용자 인증을 사용하여 Java SDK로 Data Lake Storage Gen2를 인증하는 방법을 배웠습니다. 이제 다음 문서를 통해 Java SDK를 Data Lake Storage Gen2와 함께 사용하는 방법을 살펴볼 수 있습니다.