Dienst-zu-Dienst-Authentifizierung mit Azure Data Lake Storage Gen1 unter Verwendung des .NET SDKService-to-service authentication with Azure Data Lake Storage Gen1 using .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.In this article, you learn about how to use the .NET SDK to do service-to-service authentication with Azure Data Lake Storage Gen1. 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.For end-user authentication with Data Lake Storage Gen1 using .NET SDK, see End-user authentication with Data Lake Storage Gen1 using .NET SDK.

VoraussetzungenPrerequisites

Erstellen einer .NET-AnwendungCreate a .NET application

  1. Wählen Sie in Visual Studio das Menü Datei, dann die Option Neu und anschließend Projekt aus.In Visual Studio, select the File menu, New, and then Project.

  2. Wählen Sie Konsolen-App (.NET Framework) und dann Weiter aus.Choose Console App (.NET Framework), and then select Next.

  3. Geben Sie unter ProjektnameCreateADLApplication ein, und wählen Sie dann Erstellen aus.In Project name, enter CreateADLApplication, and then select Create.

  4. Fügen Sie Ihrem Projekt die NuGet-Pakete hinzu.Add the NuGet packages to your project.

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen und dann auf NuGet-Pakete verwalten.Right-click the project name in the Solution Explorer and click Manage NuGet Packages.

    2. Stellen Sie auf der Registerkarte NuGet-Paket-Manager sicher, dass Paketquelle auf nuget.org festgelegt und das Kontrollkästchen Vorabversion einbeziehen aktiviert ist.In the NuGet Package Manager tab, make sure that Package source is set to nuget.org and that Include prerelease check box is selected.

    3. Suchen und installieren Sie die folgenden NuGet-Pakete:Search for and install the following NuGet packages:

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

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

        Hinzufügen einer NuGet-QuelleAdd a NuGet source

    4. Schließen Sie den NuGet-Paket-Manager.Close the NuGet Package 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.Open Program.cs, delete the existing code, and then include the following statements to add references to namespaces.

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üsselService-to-service authentication with client secret

Fügen Sie diesen Codeausschnitt der .NET-Clientanwendung hinzu.Add this snippet in your .NET client application. Ersetzen Sie die Platzhalterwerte mit den aus einer (als Voraussetzung angegebenen) Azure AD-Webanwendung abgerufenen Werten.Replace the placeholder values with the values retrieved from an Azure AD web application (listed as a prerequisite). Mit diesem Codeausschnitt kann Ihre Anwendung unter Verwendung des Clientgeheimnisses/-schlüssels für die Azure AD-Webanwendung nicht interaktiv mit Data Lake Storage Gen1 authentifiziert werden.This snippet lets you authenticate your application non-interactively with Data Lake Storage Gen1 using the client secret/key for Azure AD web application.

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.The preceding snippet uses a helper function GetCreds_SPI_SecretKey. Den Code für diese Hilfsfunktion finden Sie hier auf GitHub.The code for this helper function is available here on GitHub.

Dienst-zu-Dienst-Authentifizierung mit ZertifikatService-to-service authentication with certificate

Fügen Sie diesen Codeausschnitt der .NET-Clientanwendung hinzu.Add this snippet in your .NET client application. Ersetzen Sie die Platzhalterwerte mit den aus einer (als Voraussetzung angegebenen) Azure AD-Webanwendung abgerufenen Werten.Replace the placeholder values with the values retrieved from an Azure AD web application (listed as a prerequisite). Mit diesem Codeausschnitt kann Ihre Anwendung unter Verwendung des Zertifikats für eine Azure AD-Webanwendung nicht interaktiv mit Data Lake Storage Gen1 authentifiziert werden.This snippet lets you authenticate your application non-interactively with Data Lake Storage Gen1 using the certificate for an Azure AD web application. Anweisungen zum Erstellen einer Azure AD-Anwendung finden Sie unter Erstellen eines Dienstprinzipals mit selbstsigniertem Zertifikat.For instructions on how to create an Azure AD application, see Create service principal with certificates.

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.The preceding snippet uses a helper function GetCreds_SPI_Cert. Den Code für diese Hilfsfunktion finden Sie hier auf GitHub.The code for this helper function is available here on GitHub.

Nächste SchritteNext steps

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 this article, you learned how to use service-to-service authentication to authenticate with Data Lake Storage Gen1 using .NET SDK. In den folgenden Artikeln erfahren Sie, wie Sie das .NET SDK für die Arbeit mit Data Lake Storage Gen1 verwenden.You can now look at the following articles that talk about how to use the .NET SDK to work with Data Lake Storage Gen1.