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
Visual Studio 2013 o superior. En las instrucciones siguientes se usa Visual Studio 2019.
Una suscripción de Azure. Consulte Obtención de una versión de evaluación gratuita.
Cree una aplicación de Microsoft Entra ID "Web". Debe haber completado los pasos descritos en Autenticación entre servicios con Data Lake Storage Gen1 mediante Microsoft Entra ID.
Creación de una aplicación .NET
En Visual Studio, en el menú Archivo, seleccione Nuevo y, a continuación, Proyecto.
Elija Aplicación de consola (.NET Framework) y, a continuación, seleccione Siguiente.
En el nombre del proyecto, escriba
CreateADLApplication
y, a continuación, seleccione Crear.Agregue los paquetes NuGet al proyecto.
Haga clic con el botón derecho en el Explorador de soluciones y haga clic en Administrar paquetes de NuGet.
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.
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.
Cierre el Administrador de paquetes NuGet.
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.