Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как использовать пакет SDK для .NET для аутентификации между службами в Azure Data Lake Storage 1-го поколения. Дополнительные сведения об аутентификации пользователей в Azure Data Lake Storage 1-го поколения с помощью пакета SDK для .NET см. в статье Аутентификация пользователя в Azure Data Lake Storage 1-го поколения с помощью пакета SDK для .NET.
Предпосылки
Visual Studio 2013 или более поздней версии. В инструкциях ниже используется Visual Studio 2019.
подписка Azure. См. получите бесплатную пробную версию Azure.
Создайте приложение Microsoft Entra ID "Web-приложение". Вы должны выполнить шаги в аутентификации между службами с помощью Data Lake Storage первого поколения, используя Microsoft Entra ID.
Создание приложения .NET
В Visual Studio откройте меню Файл и выберите Создать, а затем — Проект.
Выберите Console App (.NET Framework) (Консольное приложение (.NET Framework)), а затем нажмите кнопкуДалее.
В окнеИмя проекта введите
CreateADLApplication, а затем выберите Создать.Добавьте пакеты NuGet в проект.
В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите пункт Управление пакетами NuGet.
На вкладке Диспетчер пакетов NuGet в поле Источник пакета выберите nuget.org и установите флажок Включить предварительные выпуски.
Найдите и установите следующие пакеты NuGet:
Microsoft.Azure.Management.DataLake.Store. В этом руководстве используется предварительная версия 2.1.3.Microsoft.Rest.ClientRuntime.Azure.Authentication. В этом руководстве используется версия 2.2.12.
Закройте диспетчер пакетов NuGet.
Откройте файл Program.cs, удалите существующий код и включите следующие инструкции, чтобы добавить ссылки на пространства имен.
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;
Аутентификация между службами с помощью секрета клиента
Добавьте следующий фрагмент кода в клиентское приложение .NET. Замените значения заполнителей значениями, полученными из веб-приложения Microsoft Entra (перечисленные как необходимые условия). Этот фрагмент кода позволяет аутентифицировать ваше приложение без интерактивного участия с помощью Data Lake Storage Gen1, используя секретный ключ клиента для веб-приложения 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);
}
В предыдущем фрагменте используется вспомогательная функция GetCreds_SPI_SecretKey. Код этой функции см. на этой странице GitHub.
Аутентификация между службами с помощью сертификата
Добавьте следующий фрагмент кода в клиентское приложение .NET. Замените значения заполнителей значениями, полученными из веб-приложения Microsoft Entra (перечисленные как необходимые условия). Этот фрагмент позволяет выполнять проверку подлинности приложения без интерактивного доступа к Data Lake Storage 1-го поколения с помощью сертификата для веб-приложения Microsoft Entra. Инструкции по созданию приложения Microsoft Entra см. в разделе "Создание служебного принципала с помощью сертификатов".
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);
}
В предыдущем фрагменте используется вспомогательная функция GetCreds_SPI_Cert. Код этой функции см. на этой странице GitHub.
Дальнейшие действия
В этой статье описывается, как использовать аутентификацию между службами, чтобы реализовать аутентификацию в Data Lake Storage 1-го поколения с помощью пакета SDK для .NET. Дополнительные сведения об использовании пакета SDK для .NET для работы с Data Lake Storage 1-го поколения см. в следующих статьях.