Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Deze quickstart laat zien hoe u tijdens runtime het clientinitialisatiepatroon implementeert dat wordt gebruikt door de MIP SDK .NET-wrapper voor de Beleids-SDK.
Opmerking
De stappen die in deze quickstart worden beschreven, zijn vereist voor elke clienttoepassing die gebruikmaakt van de MIP .NET Policy SDK. Deze quickstart moet worden voltooid na het instellen en configureren van de MIP SDK.
Vereiste voorwaarden
Als u dat nog niet hebt gedaan, moet u het volgende doen:
- Voer de stappen uit in de installatie en configuratie van microsoft Information Protection (MIP) SDK.
- Optioneel:
- Controleer profiel- en motorobjecten.
- Controleer de authenticatieconcepten.
Een Visual Studio-oplossing en -project maken
Open Visual Studio 2022 of hoger en selecteer het menu Bestand , Nieuw, Project.
- Selecteer Console-app (gericht op .NET 8 of hoger).
- Geef een naam en locatie op voor het project.
Voeg de NuGet-pakketten toe voor de MIP Policy SDK en MSAL:
- Klik in Solution Explorer met de rechtermuisknop op het projectknooppunt en selecteer NuGet-pakketten beheren....
- Selecteer Bladeren, voer Microsoft.InformationProtection in het zoekvak in en installeer het pakket Microsoft.InformationProtection.Policy .
- Zoek en installeer Microsoft.Identity.Client.
Implementeer een authenticatiegedelegeerde.
Voeg een nieuwe klasse toe met de naam
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; } }
De consent-delegate implementeren
Voeg een nieuwe klasse toe met de naam
ConsentDelegateImplementation:using Microsoft.InformationProtection; public class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }
Het beleidsprofiel en de engine initialiseren
Werk
Program.csbij omMipContextte maken,PolicyProfilete laden enPolicyEnginetoe te voegen.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.");Bouwen en testen. De toepassing moet initialiseren en verbinding maken met de beleidsservice.