Bagikan melalui


Autentikasi layanan ke layanan dengan Azure Data Lake Storage Gen1 menggunakan .NET SDK

Dalam artikel ini, Anda mempelajari tentang cara menggunakan .NET SDK untuk melakukan autentikasi layanan ke layanan dengan Azure Data Lake Storage Gen1. Untuk autentikasi pengguna akhir dengan Data Lake Storage Gen1 menggunakan .NET SDK, lihat Autentikasi pengguna akhir dengan Data Lake Storage Gen1 menggunakan .NET SDK.

Prasyarat

Membuat aplikasi .NET

  1. Di Visual Studio, pilih menu File, Baru, lalu Project.

  2. Pilih Aplikasi Konsol (.NET Framework) , lalu pilih Berikutnya.

  3. Di Nama proyek, masukkan CreateADLApplication, dan lalu pilih Buat.

  4. Tambahkan paket NuGet ke proyek Anda.

    1. Klik kanan nama proyek di Penjelajah Solusi dan klik Kelola Paket NuGet.

    2. Di tab Manajer Paket NuGet, pastikan bahwa sumber Paket diatur ke nuget.org dan itu sudah termasuk pra-pengiriman kotak centang dipilih.

    3. Cari dan pasang paket NuGet berikut:

      • Microsoft.Azure.Management.DataLake.Store - Tutorial ini menggunakan v2.1.3-preview.

      • Microsoft.Rest.ClientRuntime.Azure.Authentication - Tutorial ini menggunakan v2.2.12.

        Menambahkan sumber NuGet

    4. Tutup Manajer Paket NuGet.

  5. Buka Program.cs, hapus kode yang ada, lalu sertakan pernyataan berikut untuk menambahkan referensi ke namespace.

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;

Autentikasi layanan ke layanan dengan rahasia klien

Tambahkan cuplikan ini di aplikasi klien .NET Anda. Ganti nilai tempat penampung dengan nilai yang diambil dari aplikasi web Microsoft Entra (tercantum sebagai prasyarat). Cuplikan ini memungkinkan Anda mengautentikasi aplikasi secara non-interaktif dengan Data Lake Storage Gen1 menggunakan rahasia/kunci klien untuk aplikasi web 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);
}

Cuplikan sebelumnya menggunakan fungsi pembantu GetCreds_SPI_SecretKey. Kode untuk fungsi pembantu ini tersedia di sini di GitHub.

Autentikasi layanan ke layanan dengan sertifikat

Tambahkan cuplikan ini di aplikasi klien .NET Anda. Ganti nilai tempat penampung dengan nilai yang diambil dari aplikasi web Microsoft Entra (tercantum sebagai prasyarat). Cuplikan ini memungkinkan Anda mengautentikasi aplikasi secara non-interaktif dengan Data Lake Storage Gen1 menggunakan sertifikat untuk aplikasi web Microsoft Entra. Untuk petunjuk tentang cara membuat aplikasi Microsoft Entra, lihat Membuat perwakilan layanan dengan sertifikat.

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

Cuplikan sebelumnya menggunakan fungsi pembantu GetCreds_SPI_Cert. Kode untuk fungsi pembantu ini tersedia di sini di GitHub.

Langkah berikutnya

Dalam artikel ini, Anda mempelajari cara menggunakan autentikasi layanan ke layanan untuk mengautentikasi dengan Data Lake Storage Gen1 menggunakan .NET SDK. Sekarang Anda dapat melihat artikel berikut yang berbicara tentang cara menggunakan .NET SDK untuk bekerja dengan Data Lake Storage Gen1.