Freigeben über


Dienst-zu-Dienst-Authentifizierung mit Azure Data Lake Storage Gen1 unter Verwendung des .NET SDK

In diesem Artikel erfahren Sie, wie Sie mithilfe des .NET SDK die Dienst-zu-Dienst-Authentifizierung mit Azure Data Lake Storage Gen1 durchführen. Informationen zur Authentifizierung von Endbenutzern mit Data Lake Storage Gen1 unter Verwendung des .NET SDK finden Sie unter Authentifizierung von Endbenutzern bei Data Lake Storage Gen1 mithilfe des .NET SDK.

Voraussetzungen

Erstellen einer .NET-Anwendung

  1. Wählen Sie in Visual Studio das Menü Datei, dann die Option Neu und anschließend Projekt aus.

  2. Wählen Sie Konsolen-App (.NET Framework) und dann Weiter aus.

  3. Geben Sie unter ProjektnameCreateADLApplication ein, und wählen Sie dann Erstellen aus.

  4. Fügen Sie Ihrem Projekt die NuGet-Pakete hinzu.

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen und dann auf NuGet-Pakete verwalten.

    2. Stellen Sie auf der Registerkarte NuGet-Paket-Manager sicher, dass Paketquelle auf nuget.org festgelegt und das Kontrollkästchen Vorabversion einbeziehen aktiviert ist.

    3. Suchen und installieren Sie die folgenden NuGet-Pakete:

      • Microsoft.Azure.Management.DataLake.Store: In diesem Tutorial wird „v2.1.3-preview“ verwendet.

      • Microsoft.Rest.ClientRuntime.Azure.Authentication: In diesem Tutorial wird „v2.2.12“ verwendet.

        Hinzufügen einer NuGet-Quelle

    4. Schließen Sie den NuGet-Paket-Manager.

  5. Öffnen Sie Program.cs, löschen Sie den vorhandenen Code, und fügen Sie dann die folgenden Anweisungen ein, um Verweise auf Namespaces hinzuzufügen.

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;

Dienst-zu-Dienst-Authentifizierung mit geheimem Clientschlüssel

Fügen Sie diesen Codeausschnitt der .NET-Clientanwendung hinzu. Ersetzen Sie die Platzhalterwerte durch die Werte, die aus einer Microsoft Entra Webanwendung abgerufen werden (als Voraussetzung aufgeführt). Mit diesem Codeausschnitt können Sie Ihre Anwendung nicht interaktiv mit Data Lake Storage Gen1 authentifizieren, indem Sie den geheimen Clientschlüssel für Microsoft Entra Webanwendung verwenden.

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

Im vorangehenden Ausschnitt wird die Hilfsfunktion GetCreds_SPI_SecretKey verwendet. Den Code für diese Hilfsfunktion finden Sie hier auf GitHub.

Dienst-zu-Dienst-Authentifizierung mit Zertifikat

Fügen Sie diesen Codeausschnitt der .NET-Clientanwendung hinzu. Ersetzen Sie die Platzhalterwerte durch die Werte, die aus einer Microsoft Entra Webanwendung abgerufen werden (als Voraussetzung aufgeführt). Mit diesem Codeausschnitt können Sie Ihre Anwendung nicht interaktiv mit Data Lake Storage Gen1 authentifizieren, indem Sie das Zertifikat für eine Microsoft Entra Webanwendung verwenden. Anweisungen zum Erstellen einer Microsoft Entra Anwendung finden Sie unter Erstellen eines Dienstprinzipals mit Zertifikaten.

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

Im vorangehenden Ausschnitt wird die Hilfsfunktion GetCreds_SPI_Cert verwendet. Den Code für diese Hilfsfunktion finden Sie hier auf GitHub.

Nächste Schritte

In diesem Artikel haben Sie erfahren, wie Sie die Dienst-zu-Dienst-Authentifizierung verwenden, um sich mithilfe des .NET SDK mit Data Lake Storage Gen1 zu authentifizieren. In den folgenden Artikeln erfahren Sie, wie Sie das .NET SDK für die Arbeit mit Data Lake Storage Gen1 verwenden.