Share via


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

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

필수 구성 요소

서비스 간 인증

  1. 명령줄에서 mvn archetype을 사용하거나 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 로깅, logback의 널리 사용되는 여러 로깅 프레임워크 중에서 선택하거나 로깅 없음을 선택할 수 있습니다. 이 예제에서 로깅을 비활성화하므로 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 웹 애플리케이션의 실제 값으로 바꿉니다.

    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와 함께 사용하는 방법을 살펴볼 수 있습니다.