Share via


.NET SDK를 사용하여 Azure Data Lake Storage Gen1로 서비스 간 인증

이 문서에서는 .NET SDK를 사용하여 Azure Data Lake Storage Gen1로 서비스 간 인증을 수행하는 방법을 배웁니다. .NET SDK를 사용한 Data Lake Storage Gen1 최종 사용자 인증의 경우 .NET SDK를 사용하여 Data Lake Storage Gen1로 최종 사용자 인증을 참조하세요.

사전 요구 사항

.NET 애플리케이션 만들기

  1. Visual Studio에서 파일 메뉴, 새로 만들기, 프로젝트를 차례로 선택합니다.

  2. 콘솔 앱(.NET Framework) , 다음을 차례로 선택합니다.

  3. 프로젝트 이름CreateADLApplication를 입력하고 만들기를 선택합니다.

  4. NuGet 패키지를 프로젝트에 추가합니다.

    1. 솔루션 탐색기에서 프로젝트 이름을 마우스 오른쪽 단추로 클릭한 후 NuGet 패키지 관리를 클릭합니다.

    2. NuGet 패키지 관리자 탭에서 패키지 원본nuget.org로 설정되어 있고 시험판 포함 확인란이 선택되어 있는지 확인합니다.

    3. 다음 NuGet 패키지를 검색하고 설치합니다.

      • Microsoft.Azure.Management.DataLake.Store - 이 자습서에서는 v2.1.3-미리 보기를 사용합니다.

      • Microsoft.Rest.ClientRuntime.Azure.Authentication - 이 자습서는 v2.2.12를 사용합니다.

        NuGet 원본 추가

    4. NuGet 패키지 관리자를 닫습니다.

  5. 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 웹 애플리케이션에서 검색된 값으로 바꿉니다(필수 구성 요소로 나열됨). 이 코드 조각을 사용하면 Microsoft Entra 웹 애플리케이션에 대한 클라이언트 비밀/키를 사용하여 Data Lake Storage Gen1 비대화형으로 애플리케이션을 인증할 수 있습니다.

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 웹 애플리케이션에서 검색된 값으로 바꿉니다(필수 구성 요소로 나열됨). 이 코드 조각을 사용하면 Microsoft Entra 웹 애플리케이션에 대한 인증서를 사용하여 Data Lake Storage Gen1 비대화형으로 애플리케이션을 인증할 수 있습니다. 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에서 사용할 수 있습니다.

다음 단계

이 문서에서는 .NET SDK를 사용하여 Data Lake Storage Gen1로 인증하는 서비스 간 인증을 사용하는 방법을 배웠습니다. 이제 다음 문서를 통해 .NET SDK를 Data Lake Storage Gen1과 함께 사용하는 방법을 살펴볼 수 있습니다.