Uwierzytelnianie typu usługa-usługa z usługą Azure Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET
W tym artykule dowiesz się, jak używać zestawu SDK platformy .NET do uwierzytelniania typu usługa z usługą Azure Data Lake Storage Gen1. Aby uzyskać informacje na temat uwierzytelniania użytkowników końcowych przy użyciu Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET, zobacz Uwierzytelnianie użytkowników końcowych przy użyciu Data Lake Storage Gen1 przy użyciu zestawu .NET SDK.
Wymagania wstępne
Visual Studio 2013 lub nowszych. Poniższe instrukcje korzystają z programu Visual Studio 2019.
Subskrypcja platformy Azure. Zobacz temat Uzyskiwanie bezpłatnej wersji próbnej platformy Azure.
Utwórz aplikację Tożsamość Microsoft Entra "Internet". Musisz wykonać kroki opisane w artykule Uwierzytelnianie typu usługa-usługa z Data Lake Storage Gen1 przy użyciu Tożsamość Microsoft Entra.
Tworzenie aplikacji .NET
W programie Visual Studio wybierz menu Plik , Nowy, a następnie pozycję Projekt.
Wybierz pozycję Aplikacja konsolowa (.NET Framework),a następnie wybierz przycisk Dalej.
W polu Project name (Nazwa projektu) wprowadź ciąg
CreateADLApplication
, a następnie wybierz pozycję Create (Utwórz).Dodaj pakiety NuGet do swojego projektu.
Kliknij prawym przyciskiem myszy nazwę projektu w Eksploratorze rozwiązań i kliknij polecenie Zarządzaj pakietami NuGet.
Na karcie Menedżer pakietów NuGet upewnij się, że opcja Źródło pakietu jest ustawiona na nuget.org , a pole wyboru Uwzględnij wersję wstępną jest zaznaczone.
Wyszukaj i zainstaluj następujące pakiety NuGet:
Microsoft.Azure.Management.DataLake.Store
— w tym samouczku jest używana wersja v2.1.3-preview.Microsoft.Rest.ClientRuntime.Azure.Authentication
— w tym samouczku jest używana wersja v2.2.12.
Zamknij Menedżera pakietów NuGet.
Otwórz plik Program.cs, usuń istniejący kod, a następnie dołącz poniższe instrukcje, aby dodać odwołania do przestrzeni nazw.
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;
Uwierzytelnianie typu usługa-usługa z kluczem tajnym klienta
Dodaj ten fragment kodu w aplikacji klienckiej .NET. Zastąp wartości symboli zastępczych wartościami pobranymi z aplikacji internetowej Microsoft Entra (wymienione jako wymaganie wstępne). Ten fragment kodu umożliwia uwierzytelnianie aplikacji nieinterakcyjnej za pomocą Data Lake Storage Gen1 przy użyciu klucza tajnego/klucza klienta dla aplikacji internetowej Microsoft Entra.
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);
}
Powyższy fragment kodu używa funkcji GetCreds_SPI_SecretKey
pomocnika . Kod tej funkcji pomocniczej jest dostępny tutaj w witrynie GitHub.
Uwierzytelnianie typu usługa-usługa z certyfikatem
Dodaj ten fragment kodu w aplikacji klienckiej .NET. Zastąp wartości symboli zastępczych wartościami pobranymi z aplikacji internetowej Microsoft Entra (wymienione jako wymaganie wstępne). Ten fragment kodu umożliwia uwierzytelnianie aplikacji nieinterakcyjnej przy użyciu Data Lake Storage Gen1 przy użyciu certyfikatu dla aplikacji internetowej Microsoft Entra. Aby uzyskać instrukcje dotyczące tworzenia aplikacji Microsoft Entra, zobacz Tworzenie jednostki usługi przy użyciu certyfikatów.
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);
}
Powyższy fragment kodu używa funkcji GetCreds_SPI_Cert
pomocnika . Kod tej funkcji pomocniczej jest dostępny tutaj w witrynie GitHub.
Następne kroki
W tym artykule przedstawiono sposób uwierzytelniania typu usługa-usługa w celu uwierzytelniania przy użyciu Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET. Teraz możesz zapoznać się z następującymi artykułami, w których omówiono sposób pracy z Data Lake Storage Gen1 przy użyciu zestawu SDK platformy .NET.