Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıç kılavuzu, çalışma zamanı sırasında MIP SDK .NET sarmalayıcısı tarafından kullanılan istemci başlatma deseninin nasıl uygulanacağını gösterecektir.
Uyarı
Bu hızlı başlangıçta özetlenen adımlar, MIP .NET sarmalayıcının Dosya, İlke veya Koruma SDK'larını kullanan tüm istemci uygulamaları için gereklidir. Bu Hızlı Başlangıçta Dosya SDK'larının kullanımı gösteriliyor olsa da, bu desen İlke ve Koruma SDK'larını kullanan istemciler için de geçerlidir. Gelecekteki Hızlı Başlangıçlar, her biri bir öncekini temel alarak sıra halinde yapılmalıdır; bu ise ilk Hızlı Başlangıçtır. Bu kod, MIP SDK'sını kullanmaya başlamayı göstermek için tasarlanmıştır ve üretim kullanımına yönelik değildir.
Önkoşullar
Henüz yapmadıysanız şunları yaptığınızdan emin olun:
- Microsoft Information Protection (MIP) SDK kurulumu ve yapılandırmasındaki adımları tamamlayın. Bu "İstemci uygulaması başlatma" Hızlı Başlangıç Kılavuzu, doğru SDK kurulumuna ve yapılandırmasına dayanır.
- Isteğe bağlı olarak:
- Profil ve altyapı nesnelerini gözden geçirin. Profil ve motor nesneleri, MIP Dosya/İlke/Koruma SDK'larını kullanan istemciler için gerekli olan evrensel kavramlardır.
- Kimlik doğrulaması ve onayın SDK ve istemci uygulaması tarafından nasıl uygulandığını öğrenmek için Kimlik doğrulama kavramlarını gözden geçirin.
Visual Studio çözümü ve projesi oluşturma
İlk olarak, diğer Hızlı Başlangıçların oluşturulacağı ilk Visual Studio çözümünü ve projesini oluşturup yapılandıracağız.
Visual Studio 2019'ı açın, Dosya menüsü olan Yeni, Proje'yi seçin. Yeni Proje iletişim kutusunda:
MIP Dosya SDK'sı için NuGet paketini projenize ekleyin:
- Çözüm Gezgini'nde proje düğümüne (doğrudan üst/çözüm düğümü altında) sağ tıklayın ve NuGet paketlerini yönet... öğesini seçin:
-
NuGet Paket Yöneticisi sekmesi Düzenleyici Grubu sekmeleri alanında açıldığında:
- Göz at'ı seçin.
- Arama kutusuna "Microsoft.InformationProtection" yazın.
- "Microsoft.InformationProtection.File" paketini seçin.
- Önizleme değişiklikleri onay iletişim kutusu görüntülendiğinde "Yükle" seçeneğine ve ardından "Tamam"a tıklayın.
MIP Dosya SDK'sı paketini eklemek için yukarıdaki adımları yineleyin, bunun yerine uygulamaya "Microsoft.Identity.Client" ekleyin.
Kimlik doğrulama temsilcisi uygulayın
MIP SDK' sı, istemci uygulamasıyla kimlik doğrulama çalışmasını paylaşmak için bir mekanizma sağlayan sınıf genişletilebilirliğini kullanarak kimlik doğrulamasını uygular. İstemcinin uygun bir OAuth2 erişim belirteci alması ve çalışma zamanında MIP SDK'sına sağlaması gerekir.
Şimdi SDK Microsoft.InformationProtection.IAuthDelegate arabirimini genişleterek ve sanal işlevi geçersiz kılarak/uygulayarak IAuthDelegate.AcquireToken() kimlik doğrulama temsilcisi için bir uygulama oluşturun. Kimlik doğrulama temsilcisi örneği oluşturulur ve daha sonra FileProfile ve FileEngine nesneleri tarafından kullanılır.
Visual Studio'da proje adına sağ tıklayın, Ekle'yi ve ardından Sınıf'ı seçin.
Name alanına "AuthDelegateImplementation" yazın. Ekle'yi tıklatın.
Microsoft Authentication Library (MSAL) ve MIP kitaplıkları için using deyimlerini ekleyin:
using Microsoft.InformationProtection; using Microsoft.Identity.Client;AuthDelegateImplementation,Microsoft.InformationProtection.IAuthDelegateöğesini devralacak veMicrosoft.InformationProtection.ApplicationInfotüründe özel bir değişken uygulayacak şekilde ayarlayın ve aynı türü kabul eden bir oluşturucu belirleyin.public class AuthDelegateImplementation : IAuthDelegate { private ApplicationInfo _appInfo; // Microsoft Authentication Library IPublicClientApplication private IPublicClientApplication _app; public AuthDelegateImplementation(ApplicationInfo appInfo) { _appInfo = appInfo; } }ApplicationInfoNesnesi üç özellik içerir._appInfo.ApplicationIdsınıfında, istemci kimliğini kimlik doğrulama kitaplığına sağlamak içinAuthDelegateImplementationkullanılır.ApplicationNameveApplicationVersionMicrosoft Purview denetim raporlarında kullanıma sunulacaktır.public string AcquireToken()yöntemini ekleyin. Bu yöntem, gerekirseMicrosoft.InformationProtection.Identityve üç dizeyi kabul etmelidir: yetkili URL'si, kaynak URI'si ve hak talepleri. Bu dize değişkenleri API tarafından kimlik doğrulama kitaplığına geçirilir ve işlenmemelidir. Lütfen kiracınız için Azure portalından Kiracı GUID'sini girin. Kiracı GUID'i dışındaki dizelerin düzenlenmesi kimlik doğrulamasının başarısız olmasına neden olabilir.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; }
Onay temsilcisi uygulama
Şimdi SDK'nın Microsoft.InformationProtection.IConsentDelegate arabirimini genişleterek ve GetUserConsent() üzerinde geçersiz kılma/uygulama işlemleriyle onay vekili için bir uygulama gerçekleştirin. Onay yetkilisi nesnesi oluşturulur ve daha sonra Dosya profili ve Dosya motoru nesneleri tarafından kullanılır. Onay temsilcisine, kullanıcının kullanmayı onaylaması gereken hizmetin adresi url parametresiyle birlikte verilir. Temsilci genellikle kullanıcının hizmete erişmeyi kabul etmesini veya reddetmesini sağlayan bir akış sağlamalıdır. Bu hızlı başlangıç için sabit kod Consent.Accept.
Daha önce kullandığımız Visual Studio "Sınıf Ekle" özelliğini kullanarak projenize başka bir sınıf ekleyin. Bu kez, Sınıf Adı alanına "ConsentDelegateImplementation" yazın.
Şimdi yeni onay temsilcisi sınıfınızı uygulamak için ConsentDelegateImpl.cs güncelleştirin. için using deyimini ekleyin ve sınıfı
Microsoft.InformationProtectionmiras alacak şekilde ayarlayın.class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }İsteğe bağlı olarak, hata olmadan derlendiğinden emin olmak için çözümü derlemeyi deneme.
MIP SDK Yönetilen Sarmalayıcıyı Başlat
Çözüm Gezgini'nden, projenizde yönteminin uygulanmasını
Main()içeren .cs dosyasını açın. Proje oluşturma sırasında belirlediğiniz isim, varsayılan olarak projeyle aynı olup onu içeren yapıdadır.oluşturulan uygulamasını
main()kaldırın.Yönetilen sarmalayıcı, başlatma, bir
Microsoft.InformationProtection.MIPoluşturma, profilleriMipContextyükleme ve kaynakları serbest bırakma için kullanılan statik bir sınıf içerir. Dosya SDK işlemleri için gerekli kitaplıkları yüklemek amacıyla, dosya işlemleri için sarmalayıcıyı başlatmak üzereMIP.Initialize()fonksiyonunu çağırın veMipComponent.Fileparametresini geçirin.Program.cs
Main()içinde application-id< değerini daha önce oluşturulan Microsoft Entra Uygulama Kaydı kimliğiyle değiştirerek> aşağıdakileri ekleyin.
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);
}
}
}
Dosya Profili ve Motor Oluşturma
Belirtildiği gibi, MIP API'lerini kullanan SDK istemcileri için profil ve altyapı nesneleri gereklidir. Yerel DLL'leri yükleyip profil ve altyapı nesnelerinin örneğini oluşturacak kod ekleyerek bu Hızlı Başlangıcın kodlama bölümünü tamamlayın.
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;
}
}
}
Yapıştırdığınız kaynak kodundaki yer tutucu değerlerini aşağıdaki değerleri kullanarak değiştirin:
Yer tutucu Değer Örnek <uygulama kimliği> "MIP SDK kurulumu ve yapılandırması" (2 örnek) içinde kayıtlı uygulamaya atanan Microsoft Entra Uygulama Kimliği. 0edbblll-8773-44de-b87c-b8c6276d41eb <kolay ad> Uygulamanız için kullanıcı tarafından tanımlanan tanıdık bir isim. Uygulama Başlatma <Kiracı-GUID> Microsoft Entra kiracınız için Tenant-ID TenantID Şimdi uygulamanın son derlemesini yapın ve hataları çözün. Kodunuz başarıyla derlenmelidir.
Sonraki Adımlar
Başlatma kodunuz tamamlandıktan sonra, MIP Dosya SDK'larını yaşamaya başlayacağınız sonraki hızlı başlangıç için hazırsınız.