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 ini menunjukkan kepada Anda cara menerapkan pola inisialisasi klien yang digunakan oleh pembungkus MIP SDK .NET untuk Policy SDK saat runtime.
Nota
Langkah-langkah yang diuraikan dalam panduan cepat ini diperlukan untuk aplikasi klien apa pun yang menggunakan MIP .NET Policy SDK. Panduan mulai cepat ini harus diselesaikan setelah Menyiapkan dan mengonfigurasi MIP SDK.
Prasyarat
Jika Anda belum melakukannya, pastikan untuk:
- Selesaikan langkah-langkah dalam penyiapan dan konfigurasi SDK Microsoft Information Protection (MIP).
- Secara opsional:
- Tinjau Profil dan objek mesin.
- Tinjau konsep Autentikasi.
Membuat solusi dan proyek Visual Studio
Buka Visual Studio 2022 atau yang lebih baru, pilih menu File , Baru, Proyek.
- Pilih Aplikasi Konsol (menargetkan .NET 8 atau yang lebih baru).
- Berikan Nama dan Lokasi untuk proyek.
Tambahkan paket NuGet untuk SDK Kebijakan MIP dan MSAL:
- Di Penjelajah Solusi, klik kanan simpul proyek dan pilih Kelola paket NuGet....
- Pilih Telusuri, masukkan "Microsoft.InformationProtection" di kotak pencarian, dan instal paket Microsoft.InformationProtection.Policy .
- Cari dan instal Microsoft.Identity.Client.
Menerapkan delegasi autentikasi
Tambahkan kelas baru bernama
AuthDelegateImplementation:using Microsoft.InformationProtection; using Microsoft.Identity.Client; public class AuthDelegateImplementation : IAuthDelegate { private ApplicationInfo _appInfo; private IPublicClientApplication _app; public AuthDelegateImplementation(ApplicationInfo appInfo) { _appInfo = appInfo; } 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(); string[] scopes = new string[] { resource.EndsWith('/') ? $"{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 penerima persetujuan
Tambahkan kelas baru bernama
ConsentDelegateImplementation:using Microsoft.InformationProtection; public class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }
Menginisialisasi profil Kebijakan dan mesin Kebijakan
Perbarui
Program.csuntuk membuatMipContext, muatPolicyProfile, dan tambahkanPolicyEngine:using Microsoft.InformationProtection; using Microsoft.InformationProtection.Policy; // Application info for Microsoft Entra app registration ApplicationInfo appInfo = new ApplicationInfo() { ApplicationId = "<application-id>", ApplicationName = "MIP SDK Policy Quickstart", ApplicationVersion = "1.0" }; // Create MipConfiguration and MipContext var mipConfiguration = new MipConfiguration(appInfo, "mip_data", LogLevel.Trace, false); var mipContext = MIP.CreateMipContext(mipConfiguration); // Create auth and consent delegates var authDelegate = new AuthDelegateImplementation(appInfo); var consentDelegate = new ConsentDelegateImplementation(); // Create PolicyProfile var profileSettings = new PolicyProfileSettings(mipContext, CacheStorageType.OnDiskEncrypted, consentDelegate); var profile = MIP.LoadPolicyProfileAsync(profileSettings).GetAwaiter().GetResult(); // Create PolicyEngine var engineSettings = new PolicyEngineSettings( identity: new Identity("<user@contoso.com>"), authDelegate: authDelegate, clientData: "", locale: "en-US") { Identity = new Identity("<user@contoso.com>") }; var engine = profile.AddEngineAsync(engineSettings).GetAwaiter().GetResult(); Console.WriteLine("Policy engine loaded successfully.");Bangun dan uji. Aplikasi harus menginisialisasi dan menyambungkan ke layanan Kebijakan.