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 memulai cepat ini menunjukkan cara menerapkan pola inisialisasi klien yang digunakan pembungkus .NET untuk MIP SDK saat dijalankan.
Nota
Aplikasi klien apa pun yang menggunakan SDK File, Policy, atau Protection dari wrapper .NET MIP memerlukan langkah-langkah yang diuraikan dalam panduan mulai cepat ini. Meskipun panduan memulai cepat ini mendemonstrasikan penggunaan SDK File, pola yang sama juga berlaku untuk klien yang menggunakan SDK Kebijakan dan Perlindungan. Selesaikan panduan memulai cepat berikutnya secara berurutan, karena masing-masing dibangun berdasarkan panduan sebelumnya, dan panduan ini adalah yang pertama. Kode ini dimaksudkan untuk menunjukkan cara memulai SDK MIP dan tidak dimaksudkan untuk penggunaan produksi.
Prasyarat
Jika Anda belum melakukannya, pastikan untuk:
- Selesaikan langkah-langkah dalam penyiapan dan konfigurasi SDK Microsoft Information Protection (MIP). Panduan Cepat "Inisialisasi aplikasi klien" ini bergantung pada penyiapan dan konfigurasi SDK yang tepat.
- Opsional:
- Tinjau Profil dan objek mesin. Objek profil dan mesin adalah konsep universal yang diperlukan oleh klien yang menggunakan Kit Pengembangan Perangkat Lunak (SDKs) MIP untuk File/Kebijakan/Perlindungan.
- Tinjau Konsep autentikasi untuk mempelajari bagaimana SDK dan aplikasi klien menerapkan autentikasi dan persetujuan.
Membuat solusi dan proyek Visual Studio
Pertama, buat dan konfigurasikan solusi serta proyek Visual Studio awal yang menjadi dasar bagi panduan mulai cepat lainnya.
Buka Visual Studio 2022 atau yang lebih baru, pilih menu File , Baru, Proyek. Dalam dialog Proyek Baru :
Tambahkan paket NuGet untuk MIP File SDK ke proyek Anda:
- Di Penjelajah Solusi, klik kanan simpul proyek (langsung di bawah node atas/solusi), dan pilih Kelola paket NuGet...:
- Saat tab Pengelola Paket NuGet terbuka di area tab Grup Editor:
- Pilih Telusur.
- Masukkan "Microsoft.InformationProtection" di kotak pencarian.
- Pilih paket "Microsoft.InformationProtection.File".
- Klik "Instal", lalu klik "OK" saat dialog Konfirmasi perubahan pratinjau ditampilkan.
Ulangi langkah-langkah di atas untuk menambahkan paket MIP File SDK, tetapi sebagai gantinya tambahkan "Microsoft.Identity.Client" ke aplikasi.
Menerapkan delegasi autentikasi
MIP SDK menerapkan autentikasi dengan menggunakan ekstensibilitas kelas, yang menyediakan mekanisme untuk berbagi pekerjaan autentikasi dengan aplikasi klien. Klien harus memperoleh token akses OAuth2 yang sesuai dan memberikannya ke MIP SDK saat runtime.
Sekarang buat implementasi untuk delegasi autentikasi dengan memperluas antarmuka SDK Microsoft.InformationProtection.IAuthDelegate dan menimpa atau mengimplementasikan IAuthDelegate.AcquireToken() fungsi virtual. Objek FileProfile dan FileEngine menginisialisasi dan kemudian menggunakan delegasi autentikasi.
Klik kanan nama proyek di Visual Studio, pilih Tambahkan lalu Kelas.
Masukkan "AuthDelegateImplementation" di bidang Nama . Klik Tambahkan.
Tambahkan menggunakan pernyataan untuk Pustaka Autentikasi Microsoft (MSAL) dan pustaka MIP:
using Microsoft.InformationProtection; using Microsoft.Identity.Client;Atur
AuthDelegateImplementationagar mewarisiMicrosoft.InformationProtection.IAuthDelegateserta mengimplementasikan variabel anggota privat dariMicrosoft.InformationProtection.ApplicationInfodan konstruktor yang menerima parameter dengan jenis yang sama.public class AuthDelegateImplementation : IAuthDelegate { private ApplicationInfo _appInfo; // Microsoft Authentication Library IPublicClientApplication private IPublicClientApplication _app; public AuthDelegateImplementation(ApplicationInfo appInfo) { _appInfo = appInfo; } }Objek
ApplicationInfoberisi tiga properti. KelasAuthDelegateImplementationmenggunakan_appInfo.ApplicationIduntuk memberikan ID klien ke pustaka autentikasi.ApplicationNamedanApplicationVersionmuncul di laporan audit Microsoft Purview.Tambahkan metode
public string AcquireToken(). Metode ini harus menerimaMicrosoft.InformationProtection.Identitydan tiga string: URL otoritas, URI sumber daya, dan klaim, jika diperlukan. API meneruskan variabel string ini ke pustaka autentikasi, dan Anda tidak boleh memanipulasinya. Masukkan GUID penyewa dari portal Azure untuk penyewa Anda. Mengedit string selain GUID penyewa dapat mengakibatkan kegagalan untuk mengautentikasi.public string AcquireToken(Identity identity, string authority, string resource, string claims) { var authorityUri = new Uri(authority); authority = String.Format("https://{0}/{1}", authorityUri.Host, "<Tenant-GUID>"); _app = PublicClientApplicationBuilder.Create(_appInfo.ApplicationId).WithAuthority(authority).WithDefaultRedirectUri().Build(); var accounts = (_app.GetAccountsAsync()).GetAwaiter().GetResult(); // Append .default to the resource passed in to AcquireToken(). string[] scopes = new string[] { resource[resource.Length - 1].Equals('/') ? $"{resource}.default" : $"{resource}/.default" }; var result = _app.AcquireTokenInteractive(scopes).WithAccount(accounts.FirstOrDefault()).WithPrompt(Prompt.SelectAccount) .ExecuteAsync().ConfigureAwait(false).GetAwaiter().GetResult(); return result.AccessToken; }
Menerapkan delegasi persetujuan
Sekarang buat implementasi untuk delegasi persetujuan dengan memperluas antarmuka SDK Microsoft.InformationProtection.IConsentDelegate dan mengambil alih atau menerapkan GetUserConsent(). Objek profil File dan objek mesin File menginstansiasi dan menggunakan delegasi persetujuan di kemudian hari. Delegasi persetujuan menerima alamat layanan yang harus disetujui pengguna untuk digunakan dalam parameter url. Delegasi umumnya harus memberikan alur yang memungkinkan pengguna menerima atau menolak persetujuan untuk mengakses layanan. Untuk panduan mulai cepat ini, tetapkan Consent.Accept secara langsung di dalam kode.
Menggunakan fitur "Tambahkan Kelas" Visual Studio yang sama dengan yang kami gunakan sebelumnya, tambahkan kelas lain ke proyek Anda. Kali ini, masukkan "ConsentDelegateImplementation" di bidang Nama Kelas .
Sekarang perbarui ConsentDelegateImpl.cs untuk menerapkan kelas delegasi persetujuan baru Anda. Tambahkan pernyataan penggunaan untuk
Microsoft.InformationProtectiondan atur kelas untuk mewarisiIConsentDelegate.class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }Secara opsional, coba bangun solusi untuk memastikan bahwa solusi dikompilasi tanpa kesalahan.
Menginisialisasi Pembungkus Terkelola MIP SDK
Dari Penjelajah Solusi, buka file .cs dalam proyek Anda yang berisi implementasi
Main()metode . Secara default, ini menggunakan nama yang sama dengan proyek tempatnya berada, yang Anda tentukan pada saat pembuatan proyek.Hapus implementasi yang dihasilkan dari
main().Pembungkus terkelola mencakup kelas statis,
Microsoft.InformationProtection.MIPdigunakan untuk inisialisasi, membuatMipContext, memuat profil, dan merilis sumber daya. Untuk menginisialisasi pembungkus untuk operasi File SDK, panggilMIP.Initialize(), lalu gunakanMipComponent.Fileuntuk memuat library yang diperlukan untuk operasi file.Di
Main()Program.cs tambahkan yang berikut ini, ganti <id> aplikasi dengan ID Pendaftaran Aplikasi Microsoft Entra yang dibuat sebelumnya.
using System;
using System.Threading.Tasks;
using Microsoft.InformationProtection;
using Microsoft.InformationProtection.Exceptions;
using Microsoft.InformationProtection.File;
using Microsoft.InformationProtection.Protection;
namespace mip_sdk_dotnet_quickstart
{
class Program
{
private const string clientId = "<application-id>";
private const string appName = "<friendly-name>";
static void Main(string[] args)
{
//Initialize Wrapper for File SDK operations
MIP.Initialize(MipComponent.File);
}
}
}
Membuat profil file dan mesin pengolah
Seperti disebutkan, klien SDK yang menggunakan API MIP memerlukan objek profil dan mesin. Lengkapi bagian kode dalam panduan mulai cepat ini dengan menambahkan kode untuk memuat DLL native, lalu membuat instance profil dan objek mesin.
using System;
using System.Threading.Tasks;
using Microsoft.InformationProtection;
using Microsoft.InformationProtection.File;
namespace mip_sdk_dotnet_quickstart
{
class Program
{
private const string clientId = "<application-id>";
private const string appName = "<friendly-name>";
static void Main(string[] args)
{
// Initialize Wrapper for File SDK operations.
MIP.Initialize(MipComponent.File);
// Create ApplicationInfo, setting the clientID from Microsoft Entra App Registration as the ApplicationId.
ApplicationInfo appInfo = new ApplicationInfo()
{
ApplicationId = clientId,
ApplicationName = appName,
ApplicationVersion = "1.0.0"
};
// Instantiate the AuthDelegateImpl object, passing in AppInfo.
AuthDelegateImplementation authDelegate = new AuthDelegateImplementation(appInfo);
// Create MipConfiguration Object
MipConfiguration mipConfiguration = new MipConfiguration(appInfo, "mip_data", LogLevel.Trace, false);
// Create MipContext using Configuration
MipContext mipContext = MIP.CreateMipContext(mipConfiguration);
// Initialize and instantiate the File Profile.
// Create the FileProfileSettings object.
// Initialize file profile settings to create/use local state.
var profileSettings = new FileProfileSettings(mipContext,
CacheStorageType.OnDiskEncrypted,
new ConsentDelegateImplementation());
// Load the Profile async and wait for the result.
var fileProfile = Task.Run(async () => await MIP.LoadFileProfileAsync(profileSettings)).Result;
// Create a FileEngineSettings object, then use that to add an engine to the profile.
// This pattern sets the engine ID to user1@tenant.com, then sets the identity used to create the engine.
var engineSettings = new FileEngineSettings("user1@tenant.com", authDelegate, "", "en-US");
engineSettings.Identity = new Identity("user1@tenant.com");
var fileEngine = Task.Run(async () => await fileProfile.AddEngineAsync(engineSettings)).Result;
// Application Shutdown
// handler = null; // This will be used in later quick starts.
fileEngine = null;
fileProfile = null;
mipContext.ShutDown();
mipContext = null;
}
}
}
Ganti nilai placeholder dalam kode sumber yang Anda tempelkan dengan menggunakan nilai berikut:
Placeholder Nilai Example <application-id> ID aplikasi Microsoft Entra yang ditetapkan untuk aplikasi yang didaftarkan dalam "penyiapan dan konfigurasi MIP SDK" (2 instans). 00001111-aaaa-2222-bbbb-3333cc4444 <nama ramah> Nama ramah yang ditentukan pengguna untuk aplikasi Anda. InisialisasiAplikasi <Tenant-GUID> ID Penyewa untuk penyewa Microsoft Entra Anda. TenantID Sekarang lakukan build akhir aplikasi dan atasi kesalahan apa pun. Kode Anda harus berhasil dikompilasi.
Langkah berikutnya
Sekarang setelah Anda menyelesaikan kode inisialisasi, Anda siap untuk panduan memulai cepat berikutnya, tempat Anda mulai mengenal MIP File SDK.