Aplikasi desktop yang memanggil API web: Panggil API web

Berlaku untuk: Lingkaran hijau dengan simbol tanda centang putih yang menunjukkan konten berikut berlaku untuk penyewa tenaga kerja. Penyewa tenaga kerja (pelajari lebih lanjut)

Setelah memiliki token, Anda dapat memanggil API web yang dilindungi.

Memanggil API web

Properti dari AuthenticationResult di MSAL.NET

Metode untuk memperoleh token menampilkan AuthenticationResult. Untuk metode asinkron, Task<AuthenticationResult> ditampilkan.

Dalam MSAL.NET, AuthenticationResult mengekspos:

  • AccessToken untuk API web untuk mengakses sumber daya. Parameter ini adalah string, biasanya JWT berkode Base-64. Klien tidak boleh melihat ke dalam token akses. Formatnya tidak dijamin tetap stabil, dan dapat dienkripsi untuk sumber daya. Menulis kode yang tergantung pada konten token akses pada klien adalah salah satu sumber kesalahan terbesar dan jeda logika klien. Untuk mengetahui informasi selengkapnya, lihat Token akses.
  • IdToken untuk pengguna. Parameter ini adalah JWT yang dikodekan. Untuk mengetahui informasi selengkapnya, lihat Token ID.
  • ExpiresOn memberi tahu tanggal dan waktu saat token kedaluwarsa.
  • TenantId berisi tenant tempat pengguna ditemukan. Untuk pengguna tamu dalam skenario Microsoft Entra B2B, ID penyewa adalah penyewa tamu, bukan penyewa unik. Saat token dikirim untuk pengguna, AuthenticationResult juga berisi informasi tentang pengguna ini. Untuk alur klien rahasia di mana token diminta tanpa pengguna untuk aplikasi, informasi pengguna ini adalah kosong.
  • Untuk Scopes yang diberikan token.
  • ID unik untuk pengguna.

IAkun

MSAL.NET mendefinisikan gagasan akun melalui antarmuka IAccount. Perubahan signifikan ini memberikan semantik yang tepat. Pengguna yang sama dapat memiliki beberapa akun, di direktori Microsoft Entra yang berbeda. MSAL.NET juga memberikan informasi yang lebih baik dalam skenario tamu karena tersedia informasi akun utama. Diagram berikut menunjukkan struktur antarmuka IAccount.

Struktur antarmuka IAccount

Kelas AccountId mengidentifikasi akun di penyewa tertentu dengan properti yang ditunjukkan dalam tabel berikut.

Properti Deskripsi
TenantId Representasi string untuk GUID, yang merupakan ID penyewa tempat akun berada.
ObjectId Representasi string untuk GUID, yang merupakan ID pengguna yang memiliki akun di penyewa.
Identifier Pengidentifikasi unik untuk akun. Identifier adalah perangkaian ObjectId dan TenantId yang dipisahkan oleh koma. Mereka tidak dikodekan dalam Base 64.

Antarmuka IAccount mewakili informasi tentang satu akun. Pengguna yang sama dapat tersedia di penyewa yang berbeda, yang berarti bahwa pengguna dapat memiliki beberapa akun. Anggotanya ditampilkan dalam tabel berikut.

Properti Deskripsi
Username String yang berisi nilai yang dapat ditampilkan dalam format UserPrincipalName (UPN), misalnya, john.doe@contoso.com. String ini bisa null, tidak seperti HomeAccountId dan HomeAccountId.Identifier, yang tidak akan null. Properti ini menggantikan properti DisplayableId dari IUser pada versi MSAL.NET sebelumnya.
Environment String yang berisi penyedia identitas untuk akun ini, misalnya, login.microsoftonline.com. Properti ini menggantikan properti IdentityProvider milik IUser, namun IdentityProvider juga mencakup informasi tentang penyewa, selain dari lingkungan cloud. Di sini, nilainya hanya berupa host.
HomeAccountId ID akun dari akun rumah pengguna. Properti ini secara unik mengidentifikasi pengguna di seluruh penyewa Microsoft Entra.

Gunakan token untuk memanggil API yang dilindungi

Setelah AuthenticationResult ditampilkan oleh MSAL di result, tambahkan ke header otorisasi HTTP sebelum Anda melakukan panggilan untuk mengakses API web yang dilindungi.

httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);

// Call the web API.
HttpResponseMessage response = await _httpClient.GetAsync(apiUri);
...

Langkah berikutnya

  • Pelajari lebih lanjut dengan membangun aplikasi React Halaman Tunggal (SPA) yang memungkinkan pengguna masuk, dalam seri tutorial multi-bagian berikut ini.

  • Jelajahi sampel kode desktop platform identitas Microsoft