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
Visual Studio 2013 und höher. In der Anleitung unten wird Visual Studio 2019 verwendet.
Ein Azure-Abonnement. Siehe Kostenlose Azure-Testversion.
Erstellen Sie eine Microsoft Entra ID "Web"-Anwendung. Sie müssen die Schritte unter Dienst-zu-Dienst-Authentifizierung mit Data Lake Storage Gen1 mithilfe von Microsoft Entra ID abgeschlossen haben.
Erstellen einer .NET-Anwendung
Wählen Sie in Visual Studio das Menü Datei, dann die Option Neu und anschließend Projekt aus.
Wählen Sie Konsolen-App (.NET Framework) und dann Weiter aus.
Geben Sie unter Projektname
CreateADLApplication
ein, und wählen Sie dann Erstellen aus.Fügen Sie Ihrem Projekt die NuGet-Pakete hinzu.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen und dann auf NuGet-Pakete verwalten.
Stellen Sie auf der Registerkarte NuGet-Paket-Manager sicher, dass Paketquelle auf nuget.org festgelegt und das Kontrollkästchen Vorabversion einbeziehen aktiviert ist.
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.
Schließen Sie den NuGet-Paket-Manager.
Ö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.