Java를 사용하여 Azure Data Lake Storage Gen2로 서비스 간 인증
이 문서에서는 Java SDK를 사용하여 Azure Data Lake Storage Gen2로 서비스 간 인증을 수행하는 방법에 대해 알아봅니다. Java SDK를 사용하여 Data Lake Storage Gen2로 최종 사용자를 인증하는 기능은 지원되지 않습니다.
필수 구성 요소
Azure 구독. Azure 평가판을 참조하세요.
Microsoft Entra ID "웹" 애플리케이션을 만듭니다. Microsoft Entra ID 사용하여 Data Lake Storage Gen2 서비스 대 서비스 인증의 단계를 완료해야 합니다.
Maven 이 자습서에서는 빌드 및 프로젝트 종속성을 위해 Maven을 사용합니다. Maven 또는 Gradle과 같은 빌드 시스템을 사용하지 않고 빌드할 수 있지만 이러한 시스템을 사용하면 종속성을 훨씬 더 쉽게 관리할 수 있습니다.
(선택 사항)IntelliJ IDEA 또는 Eclipse나 유사한 IDE
서비스 간 인증
명령줄에서 mvn archetype을 사용하거나 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 로깅, logback의 널리 사용되는 여러 로깅 프레임워크 중에서 선택하거나 로깅 없음을 선택할 수 있습니다. 이 예제에서 로깅을 비활성화하므로 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 웹 애플리케이션의 실제 값으로 바꿉니다.
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와 함께 사용하는 방법을 살펴볼 수 있습니다.