Share via


Tjänst-till-tjänst-autentisering med Azure Data Lake Storage Gen1 med hjälp av .NET SDK

I den här artikeln får du lära dig mer om hur du använder .NET SDK för tjänst-till-tjänst-autentisering med Azure Data Lake Storage Gen1. Information om slutanvändarautentisering med Data Lake Storage Gen1 med hjälp av .NET SDK finns i Slutanvändarautentisering med Data Lake Storage Gen1 med hjälp av .NET SDK.

Förutsättningar

Skapa ett .NET-program

  1. I Visual Studio väljer du menyn Arkiv , Nytt och sedan Projekt.

  2. Välj Konsolapp (.NET Framework)och välj sedan Nästa.

  3. I Projektnamn anger du CreateADLApplicationoch väljer sedan Skapa.

  4. Lägg till NuGet-paketen i projektet.

    1. Högerklicka på projektnamnet i Solution Explorer och klicka på Hantera NuGet-paket.

    2. På fliken NuGet Package Manager kontrollerar du att Paketkälla är inställd på nuget.org och att kryssrutan Inkludera förhandsversion är markerad.

    3. Sök efter och installera följande NuGet-paket:

      • Microsoft.Azure.Management.DataLake.Store – I den här självstudiekursen används v2.1.3-förhandsversionen.

      • Microsoft.Rest.ClientRuntime.Azure.Authentication –I den här självstudiekursen används v2.2.12.

        Lägga till en NuGet-källa

    4. Stäng NuGet Package Manager.

  5. Öppna Program.cs, ta bort den befintliga koden och lägg sedan till följande instruktioner för att lägga till referenser till namnområden.

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;

Tjänst-till-tjänst-autentisering med klienthemlighet

Lägg till det här kodfragmentet i .NET-klientprogrammet. Ersätt platshållarvärdena med de värden som hämtats från en Microsoft Entra webbapp (anges som en förutsättning). Med det här kodfragmentet kan du autentisera ditt program icke-interaktivt med Data Lake Storage Gen1 med hjälp av klienthemligheten/nyckeln för Microsoft Entra webbapp.

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

Föregående kodfragment använder en hjälpfunktion GetCreds_SPI_SecretKey. Koden för den här hjälpfunktionen finns här på GitHub.

Tjänst-till-tjänst-autentisering med certifikat

Lägg till det här kodfragmentet i .NET-klientprogrammet. Ersätt platshållarvärdena med de värden som hämtats från en Microsoft Entra webbapp (anges som en förutsättning). Med det här kodfragmentet kan du autentisera ditt program icke-interaktivt med Data Lake Storage Gen1 med hjälp av certifikatet för en Microsoft Entra webbapp. Anvisningar om hur du skapar ett Microsoft Entra program finns i Skapa tjänstens huvudnamn med certifikat.

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

Föregående kodfragment använder en hjälpfunktion GetCreds_SPI_Cert. Koden för den här hjälpfunktionen finns här på GitHub.

Nästa steg

I den här artikeln har du lärt dig hur du använder tjänst-till-tjänst-autentisering för att autentisera med Data Lake Storage Gen1 med hjälp av .NET SDK. Nu kan du titta på följande artiklar som beskriver hur du använder .NET SDK för att arbeta med Data Lake Storage Gen1.