通过 Java 使用 Azure Data Lake Storage Gen1 进行最终用户身份验证

注意

Azure Data Lake Storage Gen1 现已停用。 请参阅此处的停用公告。Data Lake Storage Gen1 资源不再可访问。

本文介绍如何使用 Java SDK 进行 Azure Data Lake Storage Gen1 最终用户身份验证。 有关使用 Java SDK 的 Data Lake Storage Gen1 服务到服务身份验证,请参阅使用 Java 进行 Data Lake Storage Gen1 的服务到服务身份验证

先决条件

最终用户身份验证

  1. 在命令行使用 mvn archetype 或通过 IDE 创建一个 Maven 项目。 有关如何使用 IntelliJ 创建 Java 项目的说明,请参阅此文。 有关如何使用 Eclipse 创建项目的说明,请参阅此文

  2. 将以下依赖项添加到 Maven pom.xml 文件。 在 </project> 标记前添加以下代码片段

    <dependencies>
      <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-data-lake-store-sdk</artifactId>
        <version>2.2.3</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>1.7.21</version>
      </dependency>
    </dependencies>
    

    第一个依赖项从 maven 存储库使用 Data Lake Storage Gen1 SDK (azure-data-lake-store-sdk)。 第二个依赖项指定此应用程序使用的日志记录框架 (slf4j-nop)。 Data Lake Storage Gen1 SDK 使用 SLF4J 日志记录体系,允许用户从多种流行的记录框架(如 Log4j、Java 日志记录、Logback 等)中进行选择,或者不使用日志记录。 本示例禁用日志记录,因此我们使用 slf4j-nop 绑定。 若要在应用中使用其他日志记录选项,请参阅此文

  3. 将以下导入语句添加到应用程序。

    import com.microsoft.azure.datalake.store.ADLException;
    import com.microsoft.azure.datalake.store.ADLStoreClient;
    import com.microsoft.azure.datalake.store.DirectoryEntry;
    import com.microsoft.azure.datalake.store.IfExists;
    import com.microsoft.azure.datalake.store.oauth2.AccessTokenProvider;
    import com.microsoft.azure.datalake.store.oauth2.DeviceCodeTokenProvider;
    
  4. 使用 Java 应用程序中的以下代码片段获取以前使用 DeviceCodeTokenProvider 创建的 Active Directory 本机应用程序的令牌。 将 FILL-IN-HERE 替换为 Microsoft Entra 本机应用程序的实际值。

    private static String nativeAppId = "FILL-IN-HERE";
    
    AccessTokenProvider provider = new DeviceCodeTokenProvider(nativeAppId);   
    

Data Lake Storage Gen1 SDK 可让用户使用便利的方法管理所需的安全令牌来与 Data Lake Storage Gen1 帐户通信。 但是,该 SDK 并未规定只能使用这些方法。 也可以使用任何其他方法来获取令牌,例如使用 Azure AD SDK 或你自己的自定义代码。

后续步骤

本文介绍如何使用 Java SDK 通过最终用户身份验证进行 Azure Data Lake Storage Gen1 身份验证。 现可查看以下介绍如何使用 Java SDK 在 Azure Data Lake Storage Gen1 中执行操作的文章。