Mulai Cepat: Memperoleh token dan memanggil Microsoft Graph API dari aplikasi desktop
Dalam mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan bagaimana aplikasi Universal Windows Platform (UWP) dapat masuk pengguna dan mendapatkan token akses untuk memanggil Microsoft Graph API.
Lihat Cara kerja sampel untuk melihat ilustrasi.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun gratis.
- Visual Studio
Mendaftar dan mengunduh aplikasi mulai cepat Anda
Anda memiliki dua opsi untuk memulai aplikasi mulai cepat Anda:
- [Ekspres] Opsi 1: Mendafttar dan mengonfigurasi aplikasi secara otomatis lalu mengunduh sampel kode
- [Manual] Opsi 2: Mendaftar dan mengonfigurasi sampel aplikasi dan kode secara manual
Opsi 1: Mendaftarkan dan mengonfigurasi aplikasi secara otomatis lalu mengunduh sampel kode
- Buka pengalaman mulai cepat portal Microsoft Azure - Pendaftaran aplikasi.
- Masukkan nama untuk aplikasi dan pilih Daftar.
- Ikuti petunjuk untuk mengunduh dan mengonfigurasi aplikasi baru secara otomatis untuk Anda dalam satu klik.
Opsi 2: Mendaftar dan mengonfigurasi sampel aplikasi dan kode secara manual
Langkah 1: Daftarkan aplikasi
Untuk mendaftarkan aplikasi Anda dan menambahkan informasi pendaftaran aplikasi ke solusi Anda, ikuti langkah-langkah berikut:
- Masuk ke portal Microsoft Azure.
- Jika Anda memiliki akses ke beberapa penyewa, gunakan filter Direktori + langganan
di menu atas untuk beralih penyewa aplikasinya ingin Anda daftarkan. - Cari dan pilih Microsoft Azure Active Directory.
- Di bagian Kelola, pilih Pendaftaran aplikasi>Pendaftaran baru.
- Masukkan Nama untuk aplikasi Anda, misalnya
UWP-App-calling-MsGraph. Pengguna aplikasi mungkin melihat nama ini, dan Anda dapat mengubahnya nanti. - Di bagian Tipe akun yang didukung, pilih Akun di direktori organisasi dan akun Microsoft pribadi apa pun (misalnya, Skype, Xbox, Outlook.com) .
- Pilih Daftar untuk membuat aplikasi, lalu catat ID Aplikasi (klien) untuk digunakan di langkah selanjutnya.
- Di bagian Kelola, pilih Autentikasi.
- Pilih Tambahkan platform>Aplikasi seluler dan desktop.
- Di bawah URI Pengalihan, pilih
https://login.microsoftonline.com/common/oauth2/nativeclient. - Pilih Konfigurasikan.
Langkah 2: Unduh proyek
Tip
Untuk menghindari kesalahan yang disebabkan oleh keterbatasan panjang jalur di Windows, kami sarankan mengekstrak arsip atau mengkloning repositori ke direktori di dekat akar drive Anda.
Langkah 3: Konfigurasikan proyek
Ekstrak .zip arsip ke folder lokal yang dekat dengan akar drive Anda. Misalnya, ke dalam C:\Azure-Samples.
Buka proyek di Visual Studio. Instal beban kerjapengembangan Universal Windows Platform dan komponen SDK individu apa pun jika diminta.
Di MainPage.Xaml.cs, ubah nilai
ClientIdvariabel ke ID Aplikasi (Klien) dari aplikasi yang Anda daftarkan sebelumnya.private const string ClientId = "Enter_the_Application_Id_here";Anda dapat menemukan ID Aplikasi (klien) di panel Gambaran Umum aplikasi di portal Microsoft Azure (pendaftaran Aplikasi>Azure Active Directory>{Pendaftaran aplikasi Anda} ).
Buat lalu pilih sertifikat uji yang ditandatangani sendiri baru untuk paket:
- Di Penjelajah Solusi, klik ganda file Package.appxmanifest.
- Pilih Kemasan>Pilih Sertifikat...>Buat... .
- Masukkan kata sandi lalu pilih OKE. Sebuah sertifikat bernama Native_UWP_V2_TemporaryKey.pfx dibuat.
- Pilih OK untuk menutup dialog Pilih sertifikat, lalu verifikasi bahwa Anda melihat Native_UWP_V2_TemporaryKey.pfx di Penjelajah Solusi.
- Di Penjelajah Solusi, klik kanan proyek Native_UWP_V2 dan pilih Properti.
- Pilih Masuk, lalu pilih .pfx yang Anda buat di daftar turun bawah Pilih file kunci nama yang kuat.
Langkah 4: Jalankan aplikasi
Untuk menjalankan aplikasi sampel pada mesin lokal Anda:
Di toolbar Visual Studio, pilih platform yang tepat (mungkin x64 atau x86, bukan ARM). Perangkat target harus berubah dari Perangkat ke Mesin Lokal.
Pilih Debug>Mulai Tanpa Debugging.
Jika diminta untuk melakukannya, Anda mungkin harus mengaktifkan terlebih Mode Developer terlebih dahulu, lalu Mulai Tanpa Debugging lagi untuk meluncurkan aplikasi.
Saat jendela aplikasi muncul, Anda dapat memilih tombol Panggil Microsoft Graph API, masukkan kredensial Anda, dan setujui izin yang diminta oleh aplikasi. Jika berhasil, aplikasi menampilkan beberapa informasi token dan data yang diperoleh dari panggilan ke Microsoft Graph API.
Cara kerja sampel
MSAL.NET
MSAL (Microsoft.Identity.Client) adalah pustaka yang digunakan untuk masuk pengguna dan meminta token keamanan. Token keamanan digunakan untuk mengakses API yang dilindungi oleh platform Identitas Microsoft. Anda dapat menginstal MSAL dengan menjalankan perintah berikut di Konsol Package ManagerVisual Studio:
Install-Package Microsoft.Identity.Client
Inisialisasi MSAL
Anda bisa menambahkan referensi untuk MSAL dengan menambahkan kode berikut:
using Microsoft.Identity.Client;
Kemudian, MSAL diinisialisasi menggunakan kode berikut:
public static IPublicClientApplication PublicClientApp;
PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.Build();
Nilainya ClientId adalah ID Aplikasi (klien) aplikasi yang Anda daftarkan di portal Microsoft Azure. Anda dapat menemukan nilai ini di halaman Gambaran Umum aplikasi di portal Microsoft Azure.
Meminta token
MSAL memiliki dua metode untuk memperoleh token dalam aplikasi UWP: AcquireTokenInteractive dan AcquireTokenSilent.
Mendapatkan token pengguna secara interaktif
Beberapa situasi mengharuskan pengguna untuk berinteraksi dengan platform identitas Microsoft melalui jendela pop-up untuk memvalidasi info masuk mereka atau untuk memberikan persetujuan. Beberapa contoh termasuk:
- Pengguna pertama kali masuk ke aplikasi
- Ketika pengguna mungkin perlu memasukkan kembali kredensial mereka karena kata sandi telah kedaluwarsa
- Ketika aplikasi Anda meminta akses ke sumber daya, bahwa pengguna perlu menyetujui
- Ketika diperlukan otentikasi dua faktor
authResult = await PublicClientApp.AcquireTokenInteractive(scopes)
.ExecuteAsync();
scopesParameter berisi cakupan yang diminta, seperti untuk { "user.read" }Microsoft Graph atau untuk { "api://<Application ID>/access_as_user" } API web kustom.
Mendapatkan token pengguna secara diam-diam
Gunakan AcquireTokenSilentmetode untuk mendapatkan token untuk mengakses sumber daya yang dilindungi setelah metode AcquireTokenInteractive awal. Anda tidak ingin mengharuskan pengguna untuk memvalidasi kredensial mereka setiap kali mereka perlu mengakses sumber daya. Sebagian besar waktu Anda ingin melakukan akuisisi dan pembaruan token tanpa interaksi pengguna
var accounts = await PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
scopesberisi cakupan yang diminta, seperti untuk{ "user.read" }Microsoft Graph atau{ "api://<Application ID>/access_as_user" }untuk API web kustom.firstAccountmenentukan akun pengguna pertama dalam cache (MSAL mendukung beberapa pengguna dalam satu aplikasi).
Bantuan dan dukungan
Jika Anda memerlukan bantuan, ingin melaporkan masalah, atau ingin mempelajari opsi dukungan, lihat Bantuan dan dukungan bagi pengembang.
Langkah berikutnya
Cobalah tutorial desktop Windows untuk panduan langkah demi langkah lengkap tentang membangun aplikasi dan fitur baru, termasuk penjelasan lengkap dari mulai cepat ini.
Dalam mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan cara aplikasi Windows Presentation Foundation (WPF) dapat memasukkan pengguna dan mendapatkan token akses untuk memanggil API Microsoft Graph.
Lihat Cara kerja sampel untuk melihat ilustrasi.
Prasyarat
- Visual Studio dengan beban kerja pengembangan Universal Windows Platform terinstal
Mendaftarkan dan mengunduh aplikasi mulai cepat
Anda memiliki dua opsi untuk memulai aplikasi mulai cepat Anda:
- [Ekspres] Opsi 1: Mendafttar dan mengonfigurasi aplikasi secara otomatis lalu mengunduh sampel kode
- [Manual] Opsi 2: Mendaftar dan mengonfigurasi sampel aplikasi dan kode secara manual
Opsi 1: Mendaftarkan dan mengonfigurasi aplikasi secara otomatis lalu mengunduh sampel kode
- Buka pengalaman mulai cepat portal Microsoft Azure - Pendaftaran aplikasi.
- Masukkan nama aplikasi dan pilih Daftar.
- Ikuti petunjuk untuk mengunduh dan mengonfigurasi aplikasi baru secara otomatis hanya dengan satu klik.
Opsi 2: Mendaftar dan mengonfigurasi sampel aplikasi dan kode secara manual
Langkah 1: Daftarkan aplikasi
Untuk mendaftarkan aplikasi Anda dan menambahkan informasi pendaftaran aplikasi ke solusi Anda secara manual, ikuti langkah-langkah berikut:
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, gunakan filter Direktori + langganan
di menu atas untuk beralih penyewa aplikasinya ingin Anda daftarkan. - Cari dan pilih Microsoft Azure Active Directory.
- Di bagian Kelola, pilih Pendaftaran aplikasi>Pendaftaran baru.
- Masukkan Nama untuk aplikasi Anda, misalnya
Win-App-calling-MsGraph. Pengguna aplikasi mungkin melihat nama ini, dan Anda dapat mengubahnya nanti. - Di bagian Jenis akun yang didukung, pilih Akun di direktori organisasi dan akun Microsoft pribadi apa pun (misalnya, Skype, Xbox, Outlook.com) .
- Pilih Daftar untuk membuat aplikasi.
- Di bagian Kelola, pilih Autentikasi.
- Pilih Tambahkan platform>Aplikasi desktop ponsel dan desktop.
- Di bagian URI Pengalihan, pilih
https://login.microsoftonline.com/common/oauth2/nativeclientdan di URI pengalihan kustom tambahkanms-appx-web://microsoft.aad.brokerplugin/{client_id}di mana{client_id}adalah ID aplikasi (klien) dari aplikasi Anda (GUID yang sama yang muncul di kotak centangmsal{client_id}://auth). - Pilih Konfigurasikan.
Langkah 2: Unduh proyek
Tip
Untuk menghindari kesalahan yang disebabkan oleh keterbatasan panjang jalur di Windows, kami sarankan mengekstrak arsip atau mengkloning repositori ke direktori di dekat akar drive Anda.
Langkah 3: Konfigurasikan proyek
Ekstrak file zip ke folder lokal yang dekat dengan akar disk, misalnya, C:\Azure-Samples.
Buka proyek di Visual Studio.
Edit App.Xaml.cs dan ganti nilai bidang
ClientIddanTenantdengan kode berikut:private static string ClientId = "Enter_the_Application_Id_here"; private static string Tenant = "Enter_the_Tenant_Info_Here";
Di mana:
Enter_the_Application_Id_here- adalah ID aplikasi (klien) untuk aplikasi yang Anda daftarkan.Untuk menemukan nilai ID aplikasi (klien) , buka halaman Gambaran Umum aplikasi di portal Microsoft Azure.
Enter_the_Tenant_Info_Here- diatur ke salah satu opsi berikut:Jika aplikasi mendukung Akun dalam direktori organisasi ini, ganti nilai ini dengan ID penyewa atau Nama penyewa (misalnya, contoso.microsoft.com)
Jika aplikasi mendukung Akun di direktori organisasi apa pun, ganti nilai ini dengan
organizationsJika aplikasi mendukung Akun di direktori organisasi dan akun Microsoft pribadi apa pun, ganti nilai ini dengan
common.Untuk menemukan nilai ID direktori (penyewa) dan Jenis akun yang didukung, buka halaman Gambaran Umum di portal Microsoft Azure.
Langkah 4: Jalankan aplikasi
Untuk membangun dan menjalankan aplikasi sampel di Visual Studio, pilih Menu Debug>Mulai Proses Debug, atau tekan tombol F5. MainWindow aplikasi Anda ditampilkan.
Saat jendela utama aplikasi muncul, pilih tombol Panggil Microsoft Graph API. Anda akan diminta untuk masuk menggunakan info masuk akun Azure Active Directory (akun kerja atau sekolah) atau akun Microsoft (live.com, outlook.com).
Jika menjalankan aplikasi untuk pertama kalinya, Anda akan diminta untuk memberikan persetujuan untuk mengizinkan aplikasi mengakses profil pengguna Anda dan memasukkan Anda. Setelah menyetujui izin yang diminta, aplikasi menampilkan bahwa Anda telah berhasil masuk. Anda akan melihat beberapa informasi token dasar dan data pengguna yang diperoleh dari panggilan ke Microsoft Graph API.
Informasi selengkapnya
Cara kerja sampel
MSAL.NET
MSAL (Microsoft.Identity.Client) adalah pustaka yang digunakan untuk memasukkan pengguna dan meminta token yang digunakan untuk mengakses API yang dilindungi oleh platform identitas Microsoft. Anda dapat menginstal MSAL.NET dengan menjalankan perintah berikut di Package Manager Console Visual Studio:
Install-Package Microsoft.Identity.Client -IncludePrerelease
Inisialisasi MSAL
Anda bisa menambahkan referensi untuk MSAL dengan menambahkan kode berikut:
using Microsoft.Identity.Client;
Lalu, inisialisasi MSAL menggunakan kode berikut:
IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
.Build();
| Di mana: | Deskripsi |
|---|---|
ClientId |
ID Aplikasi (klien) untuk aplikasi yang terdaftar di portal Microsoft Azure. Anda dapat menemukan nilai ini di halaman Gambaran Umum aplikasi di portal Microsoft Azure. |
Meminta token
MSAL memiliki dua metode untuk memperoleh token: AcquireTokenInteractive dan AcquireTokenSilent.
Mendapatkan token pengguna secara interaktif
Beberapa situasi mengharuskan pengguna berinteraksi dengan platform identitas Microsoft melalui jendela pop-up untuk memvalidasi info masuk mereka atau memberikan persetujuan. Beberapa contoh meliputi:
- Pertama kali pengguna masuk ke aplikasi
- Ketika pengguna perlu memasukkan kembali kredensial mereka karena kata sandi kedaluwarsa
- Ketika aplikasi Anda meminta akses ke sumber daya tambahan yang perlu disetujui pengguna
- Ketika Autentikasi dua faktor diperlukan
authResult = await app.AcquireTokenInteractive(_scopes)
.ExecuteAsync();
| Di mana: | Deskripsi |
|---|---|
_scopes |
Berisi cakupan yang diminta, seperti { "user.read" } untuk Microsoft Graph atau { "api://<Application ID>/access_as_user" } untuk API web kustom. |
Mendapatkan token pengguna secara diam-diam
Anda tidak ingin meminta pengguna memvalidasi kredensial mereka setiap kali mereka perlu mengakses sumber daya. Sebagian besar waktu Anda menginginkan akuisisi dan pembaruan token tanpa interaksi pengguna apa pun. Anda dapat menggunakan metode AcquireTokenSilent ini untuk mendapatkan token untuk mengakses sumber daya yang dilindungi setelah metode AcquireTokenInteractive awal:
var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
| Di mana: | Deskripsi |
|---|---|
scopes |
Berisi cakupan yang diminta, seperti { "user.read" } untuk Microsoft Graph atau { "api://<Application ID>/access_as_user" } untuk API web kustom. |
firstAccount |
Menentukan pengguna pertama dalam cache (MSAL mendukung beberapa pengguna dalam satu aplikasi). |
Bantuan dan dukungan
Jika Anda memerlukan bantuan, ingin melaporkan masalah, atau ingin mempelajari opsi dukungan, lihat Bantuan dan dukungan bagi pengembang.
Langkah berikutnya
Cobalah tutorial desktop Windows untuk mengetahui panduan langkah demi langkah lengkap tentang membangun aplikasi dan fitur baru, termasuk penjelasan lengkap tentang mulai cepat ini.
Di mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan bagaimana aplikasi desktop Electron dapat memasukkan pengguna dan memperoleh token akses untuk memanggil Microsoft Graph API.
Mulai cepat ini menggunakan Microsoft Authentication Library for Node.js (MSAL Node) dengan alur kode otorisasi dengan PKCE.
Prasyarat
- Node.js
- Visual Studio Code atau editor kode lainnya
Mendaftar dan mengunduh aplikasi sampel
Ikuti langkah-langkah di bawah ini untuk memulai.
Langkah 1: Daftarkan aplikasi
Untuk mendaftarkan aplikasi Anda dan menambahkan informasi pendaftaran aplikasi ke solusi Anda secara manual, ikuti langkah-langkah berikut:
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, gunakan filter Direktori + langganan
di menu atas untuk beralih penyewa aplikasinya ingin Anda daftarkan. - Cari dan pilih Microsoft Azure Active Directory.
- Di bagian Kelola, pilih Pendaftaran aplikasi>Pendaftaran baru.
- Masukkan Nama untuk aplikasi Anda, misalnya
msal-node-desktop. Pengguna aplikasi mungkin melihat nama ini, dan Anda dapat mengubahnya nanti. - Pilih Daftar untuk membuat aplikasi.
- Di bagian Kelola, pilih Autentikasi.
- Pilih Tambahkan platform>Aplikasi desktop ponsel dan desktop.
- Di bagian URI Pengalihan, masukkan URI pengalihan yang disarankan oleh portal pendaftaran aplikasi, misalnya
msalfa29b4c9-7675-4b61-8a0a-bf7b2b4fda91://auth. - Pilih Konfigurasikan.
Langkah 2: Unduh proyek sampel Electron
Langkah 3: Konfigurasikan proyek sampel Electron
*Ekstrak proyek, buka folder ms-identity-JavaScript-nodejs-desktop-main, kemudian buka file .authConfig.js. Ganti nilai sebagai berikut:
| Variabel | Deskripsi | Misalnya |
|---|---|---|
Enter_the_Cloud_Instance_Id_Here |
Instans cloud Azure tempat aplikasi Anda terdaftar | https://login.microsoftonline.com/ (termasuk garis miring berikutnya) |
Enter_the_Tenant_Id_Here |
ID Penyewa atau Domain primer | contoso.microsoft.com atau cbe899ec-5f5c-4efe-b7a0-599505d3d54f |
Enter_the_Application_Id_Here |
ID Klien dari aplikasi yang Anda daftarkan | fa29b4c9-7675-4b61-8a0a-bf7b2b4fda91 |
Enter_the_Redirect_Uri_Here |
Uri pengalihan dari aplikasi yang Anda daftarkan | msalfa29b4c9-7675-4b61-8a0a-bf7b2b4fda91://auth |
Enter_the_Graph_Endpoint_Here |
Instans cloud Microsoft Graph API yang akan dipanggil oleh aplikasi Anda | https://graph.microsoft.com/ (termasuk garis miring berikutnya) |
File Anda akan terlihat seperti di bawah ini:
const AAD_ENDPOINT_HOST = "https://login.microsoftonline.com/"; // include the trailing slash
const REDIRECT_URI = "msalfa29b4c9-7675-4b61-8a0a-bf7b2b4fda91://auth";
const msalConfig = {
auth: {
clientId: "fa29b4c9-7675-4b61-8a0a-bf7b2b4fda91",
authority: `${AAD_ENDPOINT_HOST}/cbe899ec-5f5c-4efe-b7a0-599505d3d54f`,
},
system: {
loggerOptions: {
loggerCallback(loglevel, message, containsPii) {
console.log(message);
},
piiLoggingEnabled: false,
logLevel: LogLevel.Verbose,
}
}
}
const GRAPH_ENDPOINT_HOST = "https://graph.microsoft.com/"; // include the trailing slash
const protectedResources = {
graphMe: {
endpoint: `${GRAPH_ENDPOINT_HOST}v1.0/me`,
scopes: ["User.Read"],
},
graphMessages: {
endpoint: `${GRAPH_ENDPOINT_HOST}v1.0/me/messages`,
scopes: ["Mail.Read"],
}
};
module.exports = {
msalConfig: msalConfig,
protectedResources: protectedResources,
};
Langkah 4: Jalankan aplikasi
Anda harus menginstal dependensi sampel ini sekali:
cd ms-identity-javascript-nodejs-desktop-main npm installKemudian, jalankan aplikasi melalui prompt perintah atau konsol:
npm startPilih Masuk untuk memulai proses masuk.
Saat pertama kali masuk, Anda akan diminta untuk memberikan persetujuan untuk mengizinkan aplikasi memasukkan Anda dan mengakses profil Anda. Setelah berhasil masuk, Anda akan dialihkan kembali ke aplikasi.
Informasi selengkapnya
Cara kerja sampel
Saat pengguna memilih tombol Masuk untuk pertama kalinya, dapatkan metode getTokenInteractiveAuthProvider.js dipanggil. Metode ini mengalihkan pengguna untuk masuk dengan titik akhir platform identitas Microsoft dan memvalidasi info masuk pengguna, lalu mendapatkan kode otorisasi. Kode ini kemudian ditukar dengan token akses menggunakan metode acquireTokenByCode MSAL Node.
MSAL Node
MSAL Node adalah pustaka yang digunakan untuk masuk ke pengguna dan meminta token yang digunakan untuk mengakses API yang dilindungi oleh platform identitas Microsoft. Untuk informasi selengkapnya tentang cara menggunakan MSAL Node dengan aplikasi desktop, lihat artikel ini.
Anda dapat menginstal MSAL Node dengan menjalankan perintah npm berikut.
npm install @azure/msal-node --save
Langkah berikutnya
Untuk mempelajari selengkapnya tentang pengembangan aplikasi desktop Electron dengan MSAL Node, lihat tutorial: