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 | — | Pratinjau umum | ||
Java | MSAL4J | msal4j | — | GA | ||
macOS (Swift/Obj-C) | MSAL untuk iOS dan macOS | MSAL | Tutorial | GA | ||
UWP | MSAL.NET | Microsoft.Identity.Client | Tutorial | GA | ||
WPF | MSAL.NET | Microsoft.Identity.Client | Tutorial | 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
.
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:
- Untuk daftar semua pengubah yang tersedia di
PublicClientApplicationBuilder
, lihat dokumentasi referensi PublicClientApplicationBuilder. - Untuk deskripsi semua opsi yang diekspos di
PublicClientApplicationOptions
, lihat PublicClientApplicationOptions dalam dokumentasi referensi.
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.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk