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.
Mulai cepat ini akan menunjukkan kepada Anda cara menerapkan pola inisialisasi klien, yang digunakan oleh pembungkus MIP SDK .NET saat runtime.
Nota
Langkah-langkah yang diuraikan dalam mulai cepat ini diperlukan untuk aplikasi klien apa pun yang menggunakan SDK File, Kebijakan, atau Perlindungan pembungkus MIP .NET. Meskipun Mulai Cepat ini menunjukkan penggunaan SDK File, pola yang sama ini berlaku untuk klien yang menggunakan SDK Kebijakan dan Perlindungan. Mulai Cepat Di Masa Depan harus dilakukan secara serial, karena masing-masing dibangun pada yang sebelumnya, dengan yang satu ini menjadi 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). Mulai 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 SDK File/Kebijakan/Perlindungan MIP.
- Tinjau konsep Autentikasi untuk mempelajari bagaimana autentikasi dan persetujuan diterapkan oleh SDK dan aplikasi klien.
Membuat solusi dan proyek Visual Studio
Pertama, kita membuat dan mengonfigurasi solusi dan proyek Visual Studio awal, di mana Mulai Cepat lainnya akan dibuat.
Buka Visual Studio 2019, pilih menu File , Baru, Proyek. Dalam dialog Proyek Baru :
Tambahkan paket NuGet untuk MIP File SDK ke proyek Anda:
- Di Penjelajah Solusi, klik kanan pada 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 menggunakan ekstensibilitas kelas, yang menyediakan mekanisme untuk berbagi pekerjaan autentikasi dengan aplikasi klien. Klien harus memperoleh token akses OAuth2 yang sesuai, dan menyediakan ke MIP SDK saat runtime.
Sekarang buat implementasi untuk delegasi autentikasi, dengan memperluas antarmuka SDK Microsoft.InformationProtection.IAuthDelegate , dan menimpa/mengimplementasikan IAuthDelegate.AcquireToken() fungsi virtual. Delegasi autentikasi dibuat dan digunakan nanti oleh FileProfile objek dan FileEngine .
Klik kanan nama proyek di Visual Studio, pilih Tambahkan lalu Kelas.
Masukkan "AuthDelegateImplementation" di bidang Nama . Klik Tambahkan.
Tambahkan menggunakan pernyataan untuk Microsoft Authentication Library (MSAL) dan pustaka MIP:
using Microsoft.InformationProtection; using Microsoft.Identity.Client;Atur
AuthDelegateImplementationuntuk mewarisiMicrosoft.InformationProtection.IAuthDelegatedan mengimplementasikan variabelMicrosoft.InformationProtection.ApplicationInfoprivat dan konstruktor yang menerima 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._appInfo.ApplicationIdakan digunakan diAuthDelegateImplementationkelas untuk memberikan ID klien ke pustaka autentikasi.ApplicationNamedanApplicationVersionakan muncul dalam laporan audit Microsoft Purview.public string AcquireToken()Tambahkan metode . Metode ini harus menerimaMicrosoft.InformationProtection.Identitydan tiga string: URL otoritas, URI sumber daya, dan klaim, jika diperlukan. Variabel string ini akan diteruskan ke pustaka autentikasi oleh API dan tidak boleh dimanipulasi. Masukkan GUID Penyewa dari portal Microsoft 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/menerapkan GetUserConsent(). Delegasi persetujuan dibuat dan digunakan nanti, oleh profil File dan objek mesin file. Delegasi persetujuan disediakan dengan alamat layanan yang harus disetujui pengguna untuk menggunakan dalam url parameter . Delegasi umumnya harus memberikan beberapa alur yang memungkinkan pengguna untuk menerima atau menolak persetujuan untuk mengakses layanan. Untuk kode Consent.Acceptkeras mulai cepat ini .
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 . Ini default ke nama yang sama dengan proyek yang berisinya, yang Anda tentukan selama 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(), teruskanMipComponent.Fileuntuk memuat pustaka 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
Seperti disebutkan, profil dan objek mesin diperlukan untuk klien SDK menggunakan API MIP. Lengkapi bagian pengkodean mulai cepat ini, dengan menambahkan kode untuk memuat DLL asli lalu membuat instans 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 tempat penampung dalam kode sumber yang Anda tempelkan, menggunakan nilai berikut:
Placeholder Nilai Example <application-id> ID Aplikasi Microsoft Entra yang ditetapkan ke aplikasi yang terdaftar dalam "penyiapan dan konfigurasi MIP SDK" (2 instans). 0edbblll-8773-44de-b87c-b8c6276d41eb <nama ramah> Nama ramah yang ditentukan pengguna untuk aplikasi Anda. AppInitialization <Tenant-GUID> Tenant-ID untuk penyewa Microsoft Entra Anda TenantID Sekarang lakukan build akhir aplikasi dan atasi kesalahan apa pun. Kode Anda harus berhasil dibuat.
Langkah Selanjutnya
Setelah kode inisialisasi selesai, Anda siap untuk mulai cepat berikutnya, tempat Anda akan mulai mengalami SDK File MIP.