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 implementovat model inicializace klienta, který sada MIP SDK .NET obálka používá za běhu.
Poznámka:
Všechny klientské aplikace, které používají mip .NET obálky File, Policy nebo Protection SDK, vyžadují kroky popsané v tomto rychlém startu. Přestože tento rychlý úvod demonstruje použití sady File SDK, stejný postup lze použít i u klientů využívajících sady SDK pro zásady a ochranu. Dokončete budoucí rychlé starty sériově, protože každý z nich vychází z předchozího, přičemž tento rychlý start je první. Tento kód je určený k předvedení toho, jak začít se sadou MIP SDK a není určený pro produkční použití.
Požadavky
Pokud jste to ještě neudělali, nezapomeňte:
- Dokončete kroky v nastavení a konfiguraci sady Microsoft Information Protection (MIP) SDK. Tento rychlý start "Inicializace klientské aplikace" spoléhá na správné nastavení a konfiguraci sady SDK.
- Volitelně:
- Zkontrolujte objekty profilu a modulu. Objekty profilu a engine jsou univerzální koncepty vyžadované klienty, kteří používají sady SDK MIP File/Policy/Protection.
- Projděte si koncepty ověřování a zjistěte, jak sada SDK a klientská aplikace implementují ověřování a souhlas.
Vytvoření řešení a projektu sady Visual Studio
Nejprve vytvořte a nakonfigurujte počáteční Visual Studio řešení a projekt, na kterém se ostatní rychlé starty sestavují.
Otevřete Visual Studio 2022 nebo novější, vyberte nabídku Soubor , Nový, Projekt. V dialogovém okně Nový projekt :
V levém podokně v části Nainstalováno, Visual C# vyberte Windows Desktop.
V prostředním podokně vyberte Konzolová aplikace (s cílovým rozhraním .NET 8 nebo novějším).
V dolním podokně odpovídajícím způsobem aktualizujte název projektu, umístění a obsahující název řešení .
Po dokončení klikněte na tlačítko OK v pravém dolním rohu.
Do projektu přidejte balíček NuGet pro sadu MIP File SDK:
- V Průzkumníku řešení klikněte pravým tlačítkem na uzel projektu (přímo pod horním uzlem nebo uzel řešení) a vyberte Spravovat balíčky NuGet...:
- Když se v oblasti záložek skupiny editoru otevře záložka Správce balíčků NuGet:
- Vyberte Procházet.
- Do vyhledávacího pole zadejte "Microsoft.InformationProtection".
- Vyberte balíček Microsoft.InformationProtection.File.
- Po zobrazení potvrzovací dialogového okna Náhled změn klikněte na Instalovat a potom klikněte na OK.
Opakujte výše uvedené kroky pro přidání balíčku MIP File SDK, ale místo toho do aplikace přidejte Microsoft.Identity.Client.
Implementujte delegáta ověřování
Sada MIP SDK implementuje ověřování pomocí rozšiřitelnosti tříd, která poskytuje mechanismus sdílení ověřování s klientskou aplikací. Klient musí získat vhodný přístupový token OAuth2 a poskytnout ho sadě MIP SDK za běhu.
Nyní vytvořte implementaci delegáta pro ověřování rozšířením rozhraní Microsoft.InformationProtection.IAuthDelegate sady SDK a přepsáním nebo implementací virtuální funkce IAuthDelegate.AcquireToken(). Objekty FileEngine a FileProfile později inicializují a použijí autentizačního delegáta.
Klikněte pravým tlačítkem myši na název projektu v sadě Visual Studio a vyberte Přidat a potom třídu.
Do pole Název zadejte AuthDelegateImplementation. Klikněte na tlačítko Přidat.
Přidejte příkazy using pro knihovnu MSAL (Identity a ověřování Microsoftu) a knihovnu MIP:
using Microsoft.InformationProtection; using Microsoft.Identity.Client;Nastavte
AuthDelegateImplementationtak, aby dědilMicrosoft.InformationProtection.IAuthDelegate, a implementujte privátní proměnnouMicrosoft.InformationProtection.ApplicationInfoa konstruktor, který přijímá stejný typ.public class AuthDelegateImplementation : IAuthDelegate { private ApplicationInfo _appInfo; // Microsoft Authentication Library IPublicClientApplication private IPublicClientApplication _app; public AuthDelegateImplementation(ApplicationInfo appInfo) { _appInfo = appInfo; } }Objekt
ApplicationInfoobsahuje tři vlastnosti. TřídaAuthDelegateImplementationpoužívá_appInfo.ApplicationIdk poskytnutí ID klienta knihovně ověřování.ApplicationNameaApplicationVersionse zobrazují v sestavách auditních protokolů Microsoft Purview.Přidejte metodu
public string AcquireToken(). V případě potřeby by tato metoda měla přijmoutMicrosoft.InformationProtection.Identitya tři řetězce: adresa URL autority, identifikátor URI prostředku a nároky. Rozhraní API předává tyto řetězcové proměnné do autentizační knihovny a neměli byste je upravovat. Zadejte identifikátor GUID pro vašeho tenanta z webu Azure Portal. Úprava řetězců jiných než identifikátor GUID tenanta může způsobit selhání při ověřování.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(); // Append .default to the resource passed in to AcquireToken(). string[] scopes = new string[] { resource[resource.Length - 1].Equals('/') ? $"{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
Nyní vytvořte implementaci pro delegáta souhlasu rozšířením rozhraní sady SDK Microsoft.InformationProtection.IConsentDelegate a přepsáním nebo implementací GetUserConsent(). Objekt File profile a objekty File engine vytvoří instanci delegáta pro souhlas a později jej použijí. Delegát souhlasu obdrží adresu služby, se kterou musí uživatel souhlasit s použitím parametru url . Delegát by měl obecně poskytovat tok, který uživateli umožní přijmout nebo odmítnout souhlas s přístupem ke službě. Pro tento rychlý úvod zadejte Consent.Accept napevno.
Pomocí stejné funkce Přidat třídu sady Visual Studio, kterou jsme použili dříve, přidejte do projektu další třídu. Nyní zadejte "ConsentDelegateImplementation" do pole Název třídy.
Teď aktualizujte ConsentDelegateImpl.cs , aby implementovali novou třídu delegáta souhlasu. Přidejte příkaz using pro
Microsoft.InformationProtectiona nastavte třídu tak, aby dědilaIConsentDelegate.class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }Volitelně se pokuste sestavit řešení, aby se zajistilo, že se zkompiluje bez chyb.
Inicializace spravovaného wrapperu MIP SDK
V Průzkumníku řešení otevřete soubor .cs v projektu, který obsahuje implementaci
Main()metody. Výchozí název je stejný jako název projektu, ve kterém se nachází, a který jste zadali při vytváření projektu.Odeberte vygenerovanou implementaci
main().Spravovaná obálka obsahuje statickou třídu
Microsoft.InformationProtection.MIP, která se používá k inicializaci, vytvoření instanceMipContext, načítání profilů a uvolnění prostředků. Chcete-li inicializovat obálku pro operace se sadou File SDK, zavolejteMIP.Initialize()a předejteMipComponent.Fileke načtení knihoven potřebných pro operace se soubory.V
Main()Program.cs přidejte následující kód a nahraďte< ID> aplikace ID registrace aplikace Microsoft Entra vytvořené dříve.
using System;
using System.Threading.Tasks;
using Microsoft.InformationProtection;
using Microsoft.InformationProtection.Exceptions;
using Microsoft.InformationProtection.File;
using Microsoft.InformationProtection.Protection;
namespace mip_sdk_dotnet_quickstart
{
class Program
{
private const string clientId = "<application-id>";
private const string appName = "<friendly-name>";
static void Main(string[] args)
{
//Initialize Wrapper for File SDK operations
MIP.Initialize(MipComponent.File);
}
}
}
Konstrukce profilu souboru a jádra
Jak už bylo zmíněno, klienti sady SDK, kteří používají rozhraní API MIP, vyžadují objekty profilu a modulu. Dokončete část kódu tohoto rychlého startu přidáním kódu pro načtení nativních knihoven DLL a následným vytvořením instance objektů profilu a modulu.
using System;
using System.Threading.Tasks;
using Microsoft.InformationProtection;
using Microsoft.InformationProtection.File;
namespace mip_sdk_dotnet_quickstart
{
class Program
{
private const string clientId = "<application-id>";
private const string appName = "<friendly-name>";
static void Main(string[] args)
{
// Initialize Wrapper for File SDK operations.
MIP.Initialize(MipComponent.File);
// Create ApplicationInfo, setting the clientID from Microsoft Entra App Registration as the ApplicationId.
ApplicationInfo appInfo = new ApplicationInfo()
{
ApplicationId = clientId,
ApplicationName = appName,
ApplicationVersion = "1.0.0"
};
// Instantiate the AuthDelegateImpl object, passing in AppInfo.
AuthDelegateImplementation authDelegate = new AuthDelegateImplementation(appInfo);
// Create MipConfiguration Object
MipConfiguration mipConfiguration = new MipConfiguration(appInfo, "mip_data", LogLevel.Trace, false);
// Create MipContext using Configuration
MipContext mipContext = MIP.CreateMipContext(mipConfiguration);
// Initialize and instantiate the File Profile.
// Create the FileProfileSettings object.
// Initialize file profile settings to create/use local state.
var profileSettings = new FileProfileSettings(mipContext,
CacheStorageType.OnDiskEncrypted,
new ConsentDelegateImplementation());
// Load the Profile async and wait for the result.
var fileProfile = Task.Run(async () => await MIP.LoadFileProfileAsync(profileSettings)).Result;
// Create a FileEngineSettings object, then use that to add an engine to the profile.
// This pattern sets the engine ID to user1@tenant.com, then sets the identity used to create the engine.
var engineSettings = new FileEngineSettings("user1@tenant.com", authDelegate, "", "en-US");
engineSettings.Identity = new Identity("user1@tenant.com");
var fileEngine = Task.Run(async () => await fileProfile.AddEngineAsync(engineSettings)).Result;
// Application Shutdown
// handler = null; // This will be used in later quick starts.
fileEngine = null;
fileProfile = null;
mipContext.ShutDown();
mipContext = null;
}
}
}
Zástupné hodnoty ve zdrojovém kódu, které jste vložili, nahraďte následujícími hodnotami:
Zástupný text Hodnota Příklad <ID aplikace> ID aplikace Microsoft Entra přiřazené k aplikaci zaregistrované v nastavení a konfiguraci sady MIP SDK (2 instance). 00001111-aaaa-2222-bbbb-3333cccc4444 <uživatelsky přívětivý název> Uživatelsky definovaný popisný název aplikace. Inicializace aplikace <Guid tenanta> ID tenanta pro vašeho tenanta Microsoft Entra. TenantID Teď proveďte finální sestavení aplikace a vyřešte případné chyby. Kód by se měl úspěšně sestavit.
Další kroky
Teď, když je inicializační kód hotový, jste připraveni na další rychlý start, kde začnete používat sady MIP File SDK.