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

Creare un'applicazione .NET

  1. In Visual Studio selezionare il menu File , Nuovo e quindi Progetto.

  2. Scegliere App console (.NET Framework) e quindi selezionare Avanti.

  3. In Nome del progetto immettere CreateADLApplication e quindi selezionare Crea.

  4. Aggiungere i pacchetti NuGet al progetto.

    1. Fare clic con il pulsante destro del mouse sul nome del progetto in Esplora soluzioni e scegliere Gestisci pacchetti NuGet.

    2. 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 .

    3. 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.

        Aggiungere un'origine NuGet

    4. Chiudere Gestione pacchetti NuGet.

  5. 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.