Authentification de service à service auprès d’Azure Data Lake Storage Gen1 à l’aide du Kit de développement logiciel (SDK) .NET

Dans cet article, vous allez apprendre à utiliser le Kit de développement logiciel (SDK) .NET pour effectuer une authentification de service à service auprès d’Azure Data Lake Storage Gen1. Pour plus d’informations sur l’authentification des utilisateurs finaux auprès de Data Lake Storage Gen1 à l’aide du Kit de développement logiciel (SDK) .NET, consultez la rubrique Authentification des utilisateurs finaux auprès de Data Lake Storage Gen1 avec le Kit de développement logiciel (SDK) .NET.

Prérequis

Créer une application .NET

  1. Dans Visual Studio, sélectionnez le menu Fichier, puis Nouveau et Projet.

  2. Choisissez Application console (.NET Framework) , puis sélectionnez Suivant.

  3. Dans Nom du projet, entrez CreateADLApplication, puis sélectionnez Créer.

  4. Ajoutez les packages NuGet à votre projet.

    1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, puis cliquez sur Gérer les packages NuGet.

    2. Dans l’onglet Gestionnaire de package NuGet, vérifiez que Source du package a la valeur nuget.org et que la case Inclure la version préliminaire est cochée.

    3. Recherchez et installez les packages NuGet suivants :

      • Microsoft.Azure.Management.DataLake.Store - Ce didacticiel utilise v2.1.3-preview.

      • Microsoft.Rest.ClientRuntime.Azure.Authentication - Ce didacticiel utilise v2.2.12.

        Ajouter une source NuGet

    4. Fermez le Gestionnaire de package NuGet.

  5. Ouvrez Program.cs, supprimez le code existant, puis insérez les instructions suivantes pour ajouter des références aux espaces de noms.

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;

Authentification de service à service avec une clé secrète client

Ajoutez cet extrait de code dans votre application cliente .NET. Remplacez les valeurs d’espace réservé par les valeurs récupérées à partir d’une application web Microsoft Entra (répertoriées comme prérequis). Cet extrait de code vous permet d’authentifier votre application de manière non interactive avec Data Lake Storage Gen1 à l’aide de la clé secrète/clé client pour Microsoft Entra application 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);
}

L’extrait de code précédent utilise la fonction d’assistance GetCreds_SPI_SecretKey. Le code de cette fonction d’assistance est disponible ici sur GitHub.

Authentification de service à service avec un certificat

Ajoutez cet extrait de code dans votre application cliente .NET. Remplacez les valeurs d’espace réservé par les valeurs récupérées à partir d’une application web Microsoft Entra (répertoriées comme prérequis). Cet extrait de code vous permet d’authentifier votre application de manière non interactive avec Data Lake Storage Gen1 à l’aide du certificat d’une application web Microsoft Entra. Pour obtenir des instructions sur la création d’une application Microsoft Entra, consultez Créer un principal de service avec des certificats.

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);
}

L’extrait de code précédent utilise la fonction d’assistance GetCreds_SPI_Cert. Le code de cette fonction d’assistance est disponible ici sur GitHub.

Étapes suivantes

Dans cet article, vous avez appris à utiliser l’authentification de service à service auprès d’Azure Data Lake Storage Gen1 avec le Kit de développement logiciel (SDK) .NET. Vous pouvez à présent consulter les articles ci-après, qui expliquent comment utiliser le Kit de développement logiciel (SDK) .NET pour travailler avec Data Lake Storage Gen1.