在本文中,您會了解如何使用 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。
服務對服務驗證
從命令列或透過 IDE,使用 mvn 原型建立 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
的其中一個類別建立的 Active Directory Web 應用程式取得權杖 (下列範例使用credential
)。 權杖提供者會將用來取得權杖的認證快取起來,並將權杖存於記憶體中。如果權杖即將過期,會自動更新權杖。 您可以建立自己的StorageSharedKeyCredential
子類別,以便讓您的客戶程式碼取得權杖。 現在,我們只要使用 SDK 中提供的那個即可。以 Microsoft Entra Web 應用程式的實際值取代 FILL-IN-HERE。
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 身分識別用戶端程式庫,或您自己的自訂程式碼。
後續步驟
在本文中,您已了解如何使用終端使用者驗證,向使用 Java SDK 的 Data Lake Storage Gen2 進行驗證。 您現在可以看看討論如何使用 Java SDK 搭配 Data Lake Storage Gen2 的下列文章。