Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan Cepat ini memperlihatkan kepada Anda cara menggunakan SDK Perlindungan MIP, untuk menerapkan templat perlindungan yang tersedia untuk pengguna.
Prasyarat
Jika Anda belum melakukannya, pastikan untuk menyelesaikan prasyarat berikut sebelum melanjutkan:
- Selesaikan Mulai Cepat - Inisialisasi aplikasi klien - Perlindungan SDK (C++) terlebih dahulu, yang membangun solusi Visual Studio pemula. Panduan Memulai Cepat "Daftar templat perlindungan" ini bergantung pada panduan sebelumnya, untuk pembuatan solusi awal yang tepat.
- Secara opsional: Tinjau konsep Templat RMS .
Menambahkan logika untuk mencantumkan templat perlindungan
Tambahkan logika ke templat perlindungan daftar yang tersedia untuk pengguna, menggunakan objek Mesin perlindungan.
Buka solusi Visual Studio yang Anda buat di artikel "Mulai Cepat - Inisialisasi aplikasi klien - Perlindungan SDK (C++)" sebelumnya.
Menggunakan Penjelajah Solusi, buka file .cpp dalam proyek Anda yang berisi implementasi
main()metode . Ini menggunakan nama default yang sama dengan proyek yang memuatnya, yang Anda tentukan selama pembuatan proyek.Tambahkan direktif berikut
usingsetelahusing mip::ProtectionEngine;, di dekat bagian atas file:using std::endl;Menjelang akhir dari
main()isi, di bawah kurung kurawal penutup}dari blok terakhircatchdan di atasreturn 0;(tempat Anda berhenti di Quickstart sebelumnya), sisipkan kode berikut:// List protection templates const shared_ptr<ProtectionEngineObserver> engineObserver = std::make_shared<ProtectionEngineObserver>(); // Create a context to pass to 'ProtectionEngine::GetTemplateListAsync'. That context will be forwarded to the // corresponding ProtectionEngine::Observer methods. In this case, we use promises/futures as a simple way to detect // the async operation completes synchronously. auto loadPromise = std::make_shared<std::promise<vector<shared_ptr<mip::TemplateDescriptor>>>>(); std::future<vector<shared_ptr<mip::TemplateDescriptor>>> loadFuture = loadPromise->get_future(); engine->GetTemplatesAsync(engineObserver, loadPromise); auto templates = loadFuture.get(); cout << "*** Template List: " << endl; for (const auto& protectionTemplate : templates) { cout << "Name: " << protectionTemplate->GetName() << " : " << protectionTemplate->GetId() << endl; }
Membuat skrip PowerShell untuk menghasilkan token akses
Gunakan skrip PowerShell berikut untuk menghasilkan token akses, yang diminta oleh SDK dalam implementasi Anda AuthDelegateImpl::AcquireOAuth2Token . Skrip menggunakan Get-MsalToken cmdlet dari modul MSAL.PS yang Anda instal sebelumnya, di "Penyiapan dan konfigurasi MIP SDK".
Buat file Skrip PowerShell ( ekstensi.ps1), dan salin/tempel skrip berikut ke dalam file:
-
$authoritydan$resourceUrldiperbarui nanti, di bagian berikut. - Perbarui
$appIddan$redirectUri, agar sesuai dengan nilai yang Anda tentukan dalam pendaftaran aplikasi Microsoft Entra Anda.
$authority = '<authority-url>' # Specified when SDK calls AcquireOAuth2Token() $resourceUrl = '<resource-url>' # Specified when SDK calls AcquireOAuth2Token() $appId = '<app-ID>' # App ID of the Microsoft Entra app registration $redirectUri = '<redirect-uri>' # Redirect URI of the Microsoft Entra app registration $scope = $resourceUrl + "/.default" $response = Get-MsalToken -ClientId $appId -Authority $authority -RedirectUri $redirectUri -Scopes $scope -Interactive $response.AccessToken | clip # Copy the access token text to the clipboard-
Simpan file skrip sehingga Anda dapat menjalankannya nanti, saat diminta oleh aplikasi klien Anda.
Membangun dan menguji aplikasi
Terakhir, bangun dan uji aplikasi klien Anda.
Gunakan Ctrl+Shift+b (Build Solution) untuk membangun aplikasi klien Anda. Jika tidak ada kesalahan build, gunakan F5 (Mulai debugging) untuk menjalankan aplikasi Anda.
Jika proyek Anda berhasil membangun dan berjalan, aplikasi meminta token akses, setiap kali SDK memanggil metode Anda
AcquireOAuth2Token(). Anda dapat menggunakan kembali token yang dihasilkan sebelumnya, jika diminta beberapa kali dan nilai yang diminta sama:Untuk membuat token akses untuk perintah, kembali ke skrip PowerShell Anda dan:
Perbarui variabel
$authoritydan$resourceUrl. Mereka harus cocok dengan nilai yang disebutkan dalam output konsol di langkah #2.Jalankan skrip PowerShell.
Get-MsalTokenCmdlet memicu permintaan autentikasi Microsoft Entra, mirip dengan contoh di bawah ini. Tentukan akun yang sama yang disediakan dalam output konsol di langkah #2. Setelah berhasil masuk, token akses akan ditempatkan di clipboard.Anda mungkin juga perlu memberikan persetujuan, untuk memungkinkan aplikasi mengakses API MIP, saat berjalan di bawah akun masuk. Ini terjadi ketika pendaftaran aplikasi Microsoft Entra tidak disetujui sebelumnya (seperti yang diuraikan dalam "penyiapan dan konfigurasi SDK MIP"), atau Anda masuk dengan akun dari penyewa yang berbeda (selain yang mana aplikasi Anda terdaftar). Cukup klik Terima untuk merekam persetujuan Anda.
Setelah menempelkan token akses ke prompt dari langkah #2, output konsol Anda harus menampilkan templat perlindungan , mirip dengan contoh berikut:
*** Template List: Name: Confidential \ All Employees : a74f5027-f3e3-4c55-abcd-74c2ee41b607 Name: Highly Confidential \ All Employees : bb7ed207-046a-4caf-9826-647cff56b990 Name: Confidential : 174bc02a-6e22-4cf2-9309-cb3d47142b05 Name: Contoso Employees Only : 667466bf-a01b-4b0a-8bbf-a79a3d96f720 C:\MIP Sample Apps\ProtectionQS\Debug\ProtectionQS.exe (process 8252) exited with code 0. To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops. Press any key to continue . . .Nota
Salin dan simpan ID dari satu atau beberapa templat perlindungan (misalnya,
f42a3342-8706-4288-bd31-ebb85995028z), karena Anda akan menggunakannya di Mulai Cepat berikutnya.
Pemecahan masalah
Masalah selama eksekusi aplikasi C++
| Ringkasan | Pesan kesalahan | Solusi |
|---|---|---|
| Token akses buruk |
Terjadi pengecualian... apakah token akses salah/kedaluwarsa? Panggilan API gagal: profile_add_engine_async Gagal dengan: [class mip::PolicySyncException] Gagal mendapatkan kebijakan, permintaan gagal dengan kode status http: 401, x-ms-diagnostics: [2000001; reason="Token OAuth yang dikirimkan dengan permintaan tidak dapat diurai."; error_category="invalid_token"], correlationId:[35bc0023-3727-4eff-8062-000006d5d672] C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (proses 29924) keluar dengan kode 0. Tekan tombol apa pun untuk menutup jendela ini . . . |
Jika proyek Anda berhasil dihasilkan, namun Anda melihat output yang mirip dengan yang di sebelah kiri, Anda mungkin memiliki token yang tidak valid atau kadaluwarsa dalam metode AcquireOAuth2Token() lagi, dan membangun kembali/mencoba kembali. Anda juga dapat memeriksa dan memverifikasi token dan klaimnya, menggunakan aplikasi web jwt.ms satu halaman. |
Langkah Berikutnya
Sekarang setelah Anda mempelajari cara mencantumkan templat perlindungan yang tersedia untuk pengguna yang diautentikasi, coba panduan singkat berikutnya: