Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida introduttiva illustra come implementare il modello di inizializzazione client usato dal wrapper .NET di MIP SDK per Policy SDK in fase di esecuzione.
Annotazioni
Qualsiasi applicazione client che usa MIP .NET Policy SDK richiede i passaggi descritti in questa guida introduttiva. Completa Configurazione e impostazione di MIP SDK prima di iniziare.
Prerequisiti
Se non è già stato fatto, assicurarsi di:
- configurazione e configurazione dell'SDK di Microsoft Information Protection (MIP). Completare questi passaggi prima di iniziare questa guida introduttiva.
- Facoltativamente:
- Esaminare gli oggetti profilo e motore.
- Esaminare i concetti relativi all'autenticazione.
Creare una soluzione e un progetto di Visual Studio
Aprire Visual Studio 2022 o versione successiva, selezionare il menu File , Nuovo, Progetto.
- Selezionare App console (destinata a .NET 8 o versione successiva).
- Specificare un nome e un percorso per il progetto.
Aggiungere i pacchetti NuGet per MIP Policy SDK e MSAL:
- In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto e scegliere Gestisci pacchetti NuGet.
- Selezionare Sfoglia, immettere "Microsoft.InformationProtection" nella casella di ricerca e installare il pacchetto Microsoft.InformationProtection.Policy .
- Cercare e installare Microsoft.Identity.Client.
Implementare un delegato di autenticazione
Aggiungere una nuova classe denominata
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; } }
Implementare il delegato di consenso
Aggiungere una nuova classe denominata
ConsentDelegateImplementation:using Microsoft.InformationProtection; public class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }
Inizializzare il profilo e il motore della politica
Aggiorna
Program.csper creareMipContext, carica unPolicyProfilee aggiungiPolicyEngineusing 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.");Compilare e testare. L'applicazione deve inizializzare e connettersi al servizio di policy.