使用 .NET SDK 进行 Azure Data Lake Storage Gen1 最终用户身份验证

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

先决条件

创建 .NET 应用程序

  1. 在 Visual Studio 中,依次选择“文件”菜单、“新建”,然后选择“项目”。

  2. 选择“控制台应用(.NET Framework)”,然后选择“下一步” 。

  3. 在“项目名称”中,输入 CreateADLApplication,然后选择“创建”

  4. 将 NuGet 包添加到项目。

    1. 在解决方案资源管理器中右键单击项目名称,单击“管理 NuGet 包”

    2. 在“NuGet 包管理器”选项卡上,确保“包源”设置为“nuget.org”,“包含预发行版”复选框处于选中状态。

    3. 搜索并安装以下 NuGet 包:

      • Microsoft.Azure.Management.DataLake.Store - 本教程使用 v2.1.3-预览版。

      • Microsoft.Rest.ClientRuntime.Azure.Authentication - 本教程使用 v2.2.12。

        添加 NuGet 源

    4. 关闭“NuGet 包管理器”。

  5. 打开 Program.cs

  6. 将 using 语句替换为以下行:

    using System;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Collections.Generic;
    
    using Microsoft.Rest;
    using Microsoft.Rest.Azure.Authentication;
    using Microsoft.Azure.Management.DataLake.Store;
    using Microsoft.Azure.Management.DataLake.Store.Models;
    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    

最终用户身份验证

在 .NET 客户端应用程序中添加此代码片段。 将占位符值替换为从Microsoft Entra本机应用程序检索的值, (列为先决条件) 。 通过此代码片段,可以“交互方式”对应用程序进行 Data Lake Storage Gen1 身份验证,这意味着系统会提示你输入 Azure 凭据

为了便于使用,下面的代码片段针对客户端 ID 和重定向 URI 使用了对任何 Azure 订阅都有效的默认值。 在下面的代码片段中,只需要提供你的租户 ID 的值。 可以使用获取租户 ID 中提供的说明来检索租户 ID。

  • 将 Main() 函数替换为以下代码:

    private static void Main(string[] args)
    {
        //User login via interactive popup
        string TENANT = "<AAD-directory-domain>";
        string CLIENTID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
        System.Uri ARM_TOKEN_AUDIENCE = new System.Uri(@"https://management.core.windows.net/");
        System.Uri ADL_TOKEN_AUDIENCE = new System.Uri(@"https://datalake.azure.net/");
        string MY_DOCUMENTS = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
        string TOKEN_CACHE_PATH = System.IO.Path.Combine(MY_DOCUMENTS, "my.tokencache");
        var tokenCache = GetTokenCache(TOKEN_CACHE_PATH);
        var armCreds = GetCreds_User_Popup(TENANT, ARM_TOKEN_AUDIENCE, CLIENTID, tokenCache);
        var adlCreds = GetCreds_User_Popup(TENANT, ADL_TOKEN_AUDIENCE, CLIENTID, tokenCache);
    }
    

对于以上代码片段,需要注意以下几个问题:

  • 上述代码片段使用 helper 函数 GetTokenCacheGetCreds_User_Popup。 可在此处(GitHub 上)获取这些 helper 函数的代码。
  • 为了帮助读者更快完成本教程,此代码片段使用了为所有 Azure 订阅默认提供的本机应用程序客户端 ID。 因此,可以在应用程序中按原样使用此代码片段
  • 但是,如果要使用自己的Microsoft Entra域和应用程序客户端 ID,则必须创建Microsoft Entra本机应用程序,然后使用所创建应用程序的Microsoft Entra租户 ID、客户端 ID 和重定向 URI。 有关说明,请参阅创建 Active Directory 应用程序,以便进行 Data Lake Storage Gen1 最终用户身份验证

后续步骤

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