Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide de démarrage rapide vous montre comment implémenter le modèle d’initialisation du client utilisé par le wrapper .NET du SDK MIP pour le Kit de développement logiciel (SDK) de stratégie au moment de l’exécution.
Note
Les étapes décrites dans ce guide de démarrage rapide sont requises pour toute application cliente qui utilise le SDK de stratégie MIP .NET. Ce guide de démarrage rapide doit être terminé après la mise en place et la configuration du Kit de développement logiciel (SDK) MIP.
Prerequisites
Si ce n’est déjà fait, veillez à :
- Effectuez les étapes de configuration et de configuration du Kit de développement logiciel (SDK) Microsoft Information Protection (MIP).
- Optionnellement:
- Passez en revue les objets profil et moteur.
- Passez en revue les concepts d’authentification.
Créer une solution et un projet Visual Studio
Ouvrez Visual Studio 2022 ou version ultérieure, sélectionnez le menu Fichier , Nouveau, Projet.
- Sélectionnez Application console (ciblant .NET 8 ou version ultérieure).
- Indiquez un nom et un emplacement pour le projet.
Ajoutez les packages NuGet pour le SDK de stratégie MIP et MSAL :
- Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet, puis sélectionnez Gérer les packages NuGet....
- Sélectionnez Parcourir, entrez « Microsoft.InformationProtection » dans la zone de recherche, puis installez le package Microsoft.InformationProtection.Policy .
- Recherchez et installez Microsoft.Identity.Client.
Implémenter un délégué d’authentification
Ajoutez une nouvelle classe nommée
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; } }
Implémenter le délégué de consentement
Ajoutez une nouvelle classe nommée
ConsentDelegateImplementation:using Microsoft.InformationProtection; public class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }
Initialisez le profil de stratégie et le moteur
Mettre à jour
Program.cspour créer leMipContext, charger unPolicyProfileet ajouter unPolicyEngine: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.");Compiler et tester. L’application doit initialiser et se connecter au service de politique.