Autenticazione da servizio a servizio con Azure Data Lake Storage Gen1 tramite .NET SDK
Questo articolo illustra come usare .NET SDK per eseguire l'autenticazione da servizio a servizio con Azure Data Lake Storage Gen1. Per l'autenticazione dell'utente finale con Data Lake Storage Gen1 tramite .NET SDK, vedere Autenticazione dell'utente finale con Data Lake Storage Gen1 usando .NET SDK.
Prerequisiti
Visual Studio 2013 o versione successiva. Le istruzioni seguenti usano Visual Studio 2019.
Una sottoscrizione di Azure. Vedere Ottenere una versione di prova gratuita di Azure.
Creare un'applicazione Microsoft Entra ID "Web". È necessario aver completato i passaggi nell'autenticazione da servizio a servizio con Data Lake Storage Gen1 usando Microsoft Entra ID.
Creare un'applicazione .NET
In Visual Studio selezionare il menu File , Nuovo e quindi Progetto.
Scegliere App console (.NET Framework) e quindi selezionare Avanti.
In Nome del progetto immettere
CreateADLApplication
e quindi selezionare Crea.Aggiungere i pacchetti NuGet al progetto.
Fare clic con il pulsante destro del mouse sul nome del progetto in Esplora soluzioni e scegliere Gestisci pacchetti NuGet.
Nella scheda Gestione pacchetti NuGet verificare che l'origine pacchetto sia impostata su nuget.org e che sia selezionata la casella di controllo Includi versione preliminare .
Cercare e installare i pacchetti NuGet seguenti:
Microsoft.Azure.Management.DataLake.Store
- Questa esercitazione usa v2.1.3-preview.Microsoft.Rest.ClientRuntime.Azure.Authentication
- Questa esercitazione usa la versione 2.2.12.
Chiudere Gestione pacchetti NuGet.
Aprire Program.cs, eliminare il codice esistente e quindi includere le istruzioni seguenti per aggiungere riferimenti agli spazi dei nomi.
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;
Autenticazione da servizio a servizio con il segreto client
Aggiungere questo frammento di codice nell'applicazione client .NET. Sostituire i valori segnaposto con i valori recuperati da un'applicazione Web Microsoft Entra (elencati come prerequisiti). Questo frammento di codice consente di autenticare l'applicazione in modo non interattivo con Data Lake Storage Gen1 usando il segreto client o la chiave per Microsoft Entra'applicazione 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);
}
Il frammento precedente usa una funzione helper GetCreds_SPI_SecretKey
. Il codice per questa funzione helper è disponibile qui su GitHub.
Autenticazione da servizio a servizio con il certificato
Aggiungere questo frammento di codice nell'applicazione client .NET. Sostituire i valori segnaposto con i valori recuperati da un'applicazione Web Microsoft Entra (elencati come prerequisiti). Questo frammento di codice consente di autenticare l'applicazione in modo non interattivo con Data Lake Storage Gen1 usando il certificato per un'applicazione Web di Microsoft Entra. Per istruzioni su come creare un'applicazione Microsoft Entra, vedere Creare un'entità servizio con certificati.
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);
}
Il frammento precedente usa una funzione helper GetCreds_SPI_Cert
. Il codice per questa funzione helper è disponibile qui su GitHub.
Passaggi successivi
In questo articolo si è appreso come usare l'autenticazione da servizio a servizio per eseguire l'autenticazione con Data Lake Storage Gen1 usando .NET SDK. È ora possibile leggere gli articoli seguenti per informazioni su come usare .NET SDK in Data Lake Storage Gen1.