Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu se dozvíte, jak za běhu implementovat model inicializace klienta používaný zabalením .NET MIP SDK pro Policy SDK.
Poznámka:
Kroky popsané v tomto rychlém startu se vyžadují pro všechny klientské aplikace, které používají sadu MIP .NET Policy SDK. Tento rychlý start by se měl dokončit po nastavení a konfiguraci sady MIP SDK.
Předpoklady
Pokud jste to ještě neudělali, nezapomeňte:
- Dokončete kroky v nastavení a konfiguraci sady Microsoft Information Protection (MIP) SDK.
- Volitelně:
- Zkontrolujte objekty profilu a modulu.
- Projděte si koncepty ověřování.
Vytvoření řešení a projektu sady Visual Studio
Otevřete Visual Studio 2022 nebo novější, vyberte nabídku Soubor , Nový, Projekt.
- Vyberte konzolovou aplikaci (cílení na .NET 8 nebo novější).
- Zadejte název a umístění projektu.
Přidejte balíčky NuGet pro MIP Policy SDK a MSAL:
- V Průzkumníku řešení klikněte pravým tlačítkem na uzel projektu a vyberte Spravovat balíčky NuGet....
- Vyberte Procházet, do vyhledávacího pole zadejte Microsoft.InformationProtection a nainstalujte balíček Microsoft.InformationProtection.Policy .
- Vyhledejte a nainstalujte Microsoft.Identity.Client.
Implementujte delegáta ověřování
Přidejte novou třídu s názvem
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; } }
Implementace delegáta souhlasu
Přidejte novou třídu s názvem
ConsentDelegateImplementation:using Microsoft.InformationProtection; public class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }
Inicializace profilu a modulu zásad
Aktualizujte
Program.cs, vytvořteMipContext, načtětePolicyProfilea přidejtePolicyEngine: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.");Sestavte a otestujte. Aplikace by se měla inicializovat a připojit se ke službě Policy.