Bagikan melalui


Aplikasi desktop yang memanggil API web: Konfigurasi kode

Setelah membuat aplikasi, Anda akan mempelajari cara mengonfigurasi kode dengan koordinat aplikasi.

Pustaka Microsoft mendukung aplikasi desktop

Pustaka Microsoft berikut mendukung aplikasi desktop:

Bahasa pemrogram/kerangka kerja Proyek di
GitHub
Paket Persiapan
memulai
Memasukkan pengguna Mengakses API web Tersedia secara umum (GA) atau
Pratinjau umum1
Electron MSAL Node.js msal-node Library can request ID tokens for user sign-in. Library can request access tokens for protected web APIs. Pratinjau umum
Java MSAL4J msal4j Library can request ID tokens for user sign-in. Library can request access tokens for protected web APIs. GA
macOS (Swift/Obj-C) MSAL untuk iOS dan macOS MSAL Tutorial Library can request ID tokens for user sign-in. Library can request access tokens for protected web APIs. GA
UWP MSAL.NET Microsoft.Identity.Client Tutorial Library can request ID tokens for user sign-in. Library can request access tokens for protected web APIs. GA
WPF MSAL.NET Microsoft.Identity.Client Tutorial Library can request ID tokens for user sign-in. Library can request access tokens for protected web APIs. GA

1Ketentuan Lisensi Universal untuk Layanan Online berlaku untuk pustaka di Pratinjau publik.

Aplikasi klien publik

Dari sudut pandang kode, aplikasi desktop adalah aplikasi klien publik. Konfigurasi akan sedikit berbeda berdasarkan jika Anda menggunakan autentikasi interaktif atau tidak.

Anda perlu membangun dan memanipulasi MSAL.NET IPublicClientApplication.

IPublicClientApplication

Secara eksklusif dari kode

Kode berikut ini membuat instans aplikasi klien publik dan memasukkan pengguna di cloud publik Microsoft Azure, dengan akun kantor dan sekolah mereka, atau akun Microsoft pribadi mereka.

IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId)
    .Build();

Jika Anda ingin menggunakan autentikasi interaktif atau alur kode perangkat, seperti yang dilihat sebelumnya, gunakan pengubah .WithRedirectUri.

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithDefaultRedirectUri()
        .Build();

Gunakan file konfigurasi

Kode berikut membuat instans aplikasi klien publik dari objek konfigurasi, yang dapat diisi secara terprogram atau dibaca dari file konfigurasi.

PublicClientApplicationOptions options = GetOptions(); // your own method
IPublicClientApplication app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
        .WithDefaultRedirectUri()
        .Build();

Konfigurasi yang lebih terelaborasi

Anda dapat mengelaborasi pembangunan aplikasi dengan menambahkan sejumlah pengubah. Contohnya, jika Anda ingin aplikasi menjadi aplikasi multi-penyewa dalam cloud nasional, seperti Pemerintah AS yang ditampilkan di sini, Anda dapat menulis:

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithDefaultRedirectUri()
        .WithAadAuthority(AzureCloudInstance.AzureUsGovernment,
                         AadAuthorityAudience.AzureAdMultipleOrgs)
        .Build();

MSAL.NET juga berisi pengubah untuk Layanan Federasi Direktori Aktif 2019:

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithAdfsAuthority("https://consoso.com/adfs")
        .Build();

Terakhir, jika Anda ingin memperoleh token untuk penyewa Microsoft Azure Active Directory (Azure AD) B2C, tentukan penyewa Anda seperti yang ditampilkan dalam cuplikan kode berikut:

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithB2CAuthority("https://fabrikamb2c.b2clogin.com/tfp/{tenant}/{PolicySignInSignUp}")
        .Build();

Pelajari lebih lanjut

Untuk mempelajari selengkapnya tentang cara mengonfigurasi aplikasi desktop MSAL.NET:

Contoh lengkap dengan opsi konfigurasi

Bayangkan aplikasi konsol .NET yang memiliki file konfigurasi berikut appsettings.json :

{
  "Authentication": {
    "AzureCloudInstance": "AzurePublic",
    "AadAuthorityAudience": "AzureAdMultipleOrgs",
    "ClientId": "00001111-aaaa-2222-bbbb-3333cccc4444"
  },

  "WebAPI": {
    "MicrosoftGraphBaseEndpoint": "https://graph.microsoft.com"
  }
}

Anda memiliki sedikit kode untuk dibaca dalam file ini dengan menggunakan kerangka kerja konfigurasi yang disediakan .NET:

public class SampleConfiguration
{
 /// <summary>
 /// Authentication options
 /// </summary>
 public PublicClientApplicationOptions PublicClientApplicationOptions { get; set; }

 /// <summary>
 /// Base URL for Microsoft Graph (it varies depending on whether the application runs
 /// in Microsoft Azure public clouds or national or sovereign clouds)
 /// </summary>
 public string MicrosoftGraphBaseEndpoint { get; set; }

 /// <summary>
 /// Reads the configuration from a JSON file
 /// </summary>
 /// <param name="path">Path to the configuration json file</param>
 /// <returns>SampleConfiguration as read from the json file</returns>
 public static SampleConfiguration ReadFromJsonFile(string path)
 {
  // .NET configuration
  IConfigurationRoot Configuration;
  var builder = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile(path);
  Configuration = builder.Build();

  // Read the auth and graph endpoint configuration
  SampleConfiguration config = new SampleConfiguration()
  {
   PublicClientApplicationOptions = new PublicClientApplicationOptions()
  };
  Configuration.Bind("Authentication", config.PublicClientApplicationOptions);
  config.MicrosoftGraphBaseEndpoint =
  Configuration.GetValue<string>("WebAPI:MicrosoftGraphBaseEndpoint");
  return config;
 }
}

Sekarang, untuk membuat aplikasi, tulis kode berikut:

SampleConfiguration config = SampleConfiguration.ReadFromJsonFile("appsettings.json");
var app = PublicClientApplicationBuilder.CreateWithApplicationOptions(config.PublicClientApplicationOptions)
           .WithDefaultRedirectUri()
           .Build();

Sebelum panggilan ke metode .Build(), Anda dapat mengganti konfigurasi dengan panggilan ke metode .WithXXX, seperti yang terlihat sebelumnya.

Langkah berikutnya

Lanjut ke artikel berikutnya dalam skenario ini, Memperoleh token untuk aplikasi desktop.