Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här snabbstartsguiden visar hur du implementerar klientinitieringsmönstret som används av MIP SDK:s .NET-omslutning för Policy SDK vid körningstid.
Anmärkning
Alla klientprogram som använder MIP .NET Policy SDK behöver stegen i den här snabbstarten. Slutför konfigurationen av MIP SDK innan du börjar.
Förutsättningar
Om du inte redan har gjort det, se till att:
- Microsoft Information Protection (MIP) SDK-konfiguration. Slutför de här stegen före den här snabbstarten.
- Valfritt:
- Granska profil- och motorobjekt.
- Granska autentiseringsbegrepp.
Skapa en Visual Studio-lösning och ett projekt
Öppna Visual Studio 2022 eller senare, välj Arkiv-menyn, Nytt, Projekt.
- Välj Konsolapp (som riktar sig till .NET 8 eller senare).
- Ange ett namn och en plats för projektet.
Lägg till NuGet-paketen för MIP Policy SDK och MSAL:
- I Prieskumník riešení högerklickar du på projektnoden och väljer Hantera NuGet-paket....
- Välj Bläddra, ange "Microsoft.InformationProtection" i sökrutan och installera paketet Microsoft.InformationProtection.Policy .
- Sök efter och installera Microsoft.Identity.Client.
Implementera en autentiseringsdelegat
Lägg till en ny klass med namnet
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; } }
Implementera medgivandedelegeringen
Lägg till en ny klass med namnet
ConsentDelegateImplementation:using Microsoft.InformationProtection; public class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }
Initiera policyprofilen och motorn
Uppdatera
Program.csför att skapaMipContext, läsa inPolicyProfileoch lägga till enPolicyEngine: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, CacheStorageType.OnDiskEncrypted); 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); var profile = MIP.LoadPolicyProfileAsync(profileSettings).GetAwaiter().GetResult(); // Create PolicyEngine var engineSettings = new PolicyEngineSettings( id: "<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.");Skapa och testa. Applikationen bör initiera och ansluta till policytjänsten.