이 문서에서는 Java SDK를 사용하여 Azure Data Lake Storage Gen2로 서비스 간 인증을 수행하는 방법에 대해 알아봅니다. Java SDK를 사용하여 Data Lake Storage Gen2로 최종 사용자를 인증하는 기능은 지원되지 않습니다.
필수 조건
Azure 구독. Azure 평가판 가져오기를 참조하세요.
Microsoft Entra ID "Web" 애플리케이션을 만듭니다. Microsoft Entra ID를 사용하여 Data Lake Storage Gen2로 서비스 간 인증의 단계를 완료해야 합니다.
Maven. 이 자습서에서는 빌드 및 프로젝트 종속성을 위해 Maven을 사용합니다. Maven 또는 Gradle과 같은 빌드 시스템을 사용하지 않고 빌드할 수 있지만 이러한 시스템을 사용하면 종속성을 훨씬 더 쉽게 관리할 수 있습니다.
(선택 사항) IntelliJ IDEA 또는 Eclipse 와 유사한 IDE입니다.
서비스 간 인증
명령줄에서 mvn 아키타입 을 사용하거나 IDE를 사용하여 Maven 프로젝트를 만듭니다. IntelliJ를 사용하여 Java 프로젝트를 만드는 방법에 대한 지침은 여기를 참조 하세요. Eclipse를 사용하여 프로젝트를 만드는 방법에 대한 지침은 여기를 참조 하세요.
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 바인딩을 사용합니다. 앱에서 다른 로깅 옵션을 사용하려면 로깅에 대한 프로젝트 종속성 선언을 참조하세요.애플리케이션에 다음 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;
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와 함께 사용하는 방법을 살펴볼 수 있습니다.