Autenticación de servicio a servicio con Azure Data Lake Storage Gen1 mediante el SDK de .NET

En este artículo, aprenderá a usar el SDK de .NET para realizar la autenticación de servicio a servicio con Azure Data Lake Storage Gen1. Para la autenticación del usuario final con Data Lake Storage Gen1 mediante el SDK de .NET, vea End-user authentication with Data Lake Storage Gen1 using .NET SDK (Autenticación del usuario final con Data Lake Storage Gen1 mediante el SDK de .NET).

Prerrequisitos

Creación de una aplicación .NET

  1. En Visual Studio, en el menú Archivo, seleccione Nuevo y, a continuación, Proyecto.

  2. Elija Aplicación de consola (.NET Framework) y, a continuación, seleccione Siguiente.

  3. En el nombre del proyecto, escriba CreateADLApplication y, a continuación, seleccione Crear.

  4. Agregue los paquetes NuGet al proyecto.

    1. Haga clic con el botón derecho en el Explorador de soluciones y haga clic en Administrar paquetes de NuGet.

    2. En la pestaña Administrador de paquetes NuGet, asegúrese de que la opción Origen del paquete esté establecida en nuget.org y que esté activada la casilla Incluir versión preliminar.

    3. Busque e instale los siguientes paquetes NuGet:

      • Microsoft.Azure.Management.DataLake.Store - En este tutorial se usa v2.1.3 (versión preliminar).

      • Microsoft.Rest.ClientRuntime.Azure.Authentication - En este tutorial se usa v2.2.12.

        Incorporación de un origen de NuGet

    4. Cierre el Administrador de paquetes NuGet.

  5. Abra Program.cs, elimine el código existente e incluya las siguientes instrucciones para agregar referencias a espacios de nombres.

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Collections.Generic;
using System.Security.Cryptography.X509Certificates; // Required only if you are using an Azure AD application created with certificates

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;

Autenticación entre servicios con el secreto de cliente

Agregue este fragmento de código a su aplicación cliente .NET. Reemplace los valores de marcador de posición por los valores recuperados de una aplicación web de Microsoft Entra (enumerado como requisito previo). Este fragmento de código le permite autenticar la aplicación de forma no interactiva con Data Lake Storage Gen1 mediante el secreto de cliente o la clave para Microsoft Entra aplicación web.

private static void Main(string[] args)
{
    // Service principal / application authentication with client secret / key
    // Use the client ID of an existing AAD "Web App" application.
    string TENANT = "<AAD-directory-domain>";
    string CLIENTID = "<AAD_WEB_APP_CLIENT_ID>";
    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 secret_key = "<AAD_WEB_APP_SECRET_KEY>";
    var armCreds = GetCreds_SPI_SecretKey(TENANT, ARM_TOKEN_AUDIENCE, CLIENTID, secret_key);
    var adlCreds = GetCreds_SPI_SecretKey(TENANT, ADL_TOKEN_AUDIENCE, CLIENTID, secret_key);
}

El fragmento de código anterior usa la función auxiliar GetCreds_SPI_SecretKey. El código de esta función auxiliar está disponible aquí en GitHub.

Autenticación entre servicios con un certificado

Agregue este fragmento de código a su aplicación cliente .NET. Reemplace los valores de marcador de posición por los valores recuperados de una aplicación web de Microsoft Entra (enumerado como requisito previo). Este fragmento de código le permite autenticar la aplicación de forma no interactiva con Data Lake Storage Gen1 mediante el certificado de una aplicación web de Microsoft Entra. Para obtener instrucciones sobre cómo crear una aplicación de Microsoft Entra, consulte Creación de una entidad de servicio con certificados.

private static void Main(string[] args)
{
    // Service principal / application authentication with certificate
    // Use the client ID and certificate of an existing AAD "Web App" application.
    string TENANT = "<AAD-directory-domain>";
    string CLIENTID = "<AAD_WEB_APP_CLIENT_ID>";
    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/");
    var cert = new X509Certificate2(@"d:\cert.pfx", "<certpassword>");
    var armCreds = GetCreds_SPI_Cert(TENANT, ARM_TOKEN_AUDIENCE, CLIENTID, cert);
    var adlCreds = GetCreds_SPI_Cert(TENANT, ADL_TOKEN_AUDIENCE, CLIENTID, cert);
}

El fragmento de código anterior usa la función auxiliar GetCreds_SPI_Cert. El código de esta función auxiliar está disponible aquí en GitHub.

Pasos siguientes

En este artículo, aprendió a usar la autenticación de servicio a servicio con Data Lake Storage Gen1 mediante el SDK de .NET. Ahora puede consultar los siguientes artículos que tratan sobre cómo usar el SDK de .NET con Data Lake Storage Gen1.