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.
Sada Microsoft Information Protection SDK poskytuje dvě cesty, jak aplikace založené na službách jednat jménem jiného uživatele. Delegování může být nezbytné, pokud je potřeba soubory označit, chránit nebo využívat v kontextu identity uživatele, která se liší od identity služby. Tuto delegovanou identitu je možné nastavit na úrovni modulu nebo obslužné rutiny a na tom, kde je nastavená, závisí na případu použití.
Delegování založené na nastavení motoru
Sada MIP SDK podporuje poskytnutí delegované uživatelské e-mailové adresy v objektu nastavení pro všechny sady SDK; Soubor, ochrana a zásady. Toho dosáhnete nastavením DelegatedUserEmail vlastnosti objektu nastavení. Výsledkem je, že modul inicializovaný s tímto objektem nastavení provede všechny operace MIP , jako by byl uživatel poskytnut do DelegatedUserEmail vlastnosti. Zásady se načtou pro konkrétního uživatele a všechny operace ochrany se budou provádět jako tento uživatel, přičemž tento uživatel bude i vlastníkem chráněných souborů.
Tento model je užitečný v případě, že aplikace založená na službě musí fungovat plně jako uživatel; zásady je potřeba načíst pouze pro zadaného uživatele a všechny operace dešifrování je potřeba provádět v kontextu identity uživatele. Při vytváření tohoto modulu je důležité, aby aplikace určovala ID modulu jedinečné pro daného uživatele, často e-mailovou adresu. Tím se zajistí, že budou realizovány výhody ukládání do mezipaměti. Pokud není zadané jedinečné ID modulu, může dojít k nízkému výkonu vaší aplikace.
Sada SDK pro soubory
Následující ukázka ukazuje, jak nastavit delegovanou identitu pro aplikaci File SDK v jazyce C++ a C#. Stejný vzor lze použít pro Policy SDK.
Tato ukázka ukazuje, jak vytvořit delegovací modul v sadě File SDK v .NET.
// C# Example for creating a delegated file engine
string delegatedUserEmail = "alice@contoso.com";
var engineSettings = new PolicyEngineSettings(delegatedUserEmail, authDelegate, "", "en-US")
{
// Provide the identity for service discovery.
Identity = identity,
// Set the identity for which all MIP operations will be performed.
DelegatedUserEmail = delegatedUserEmail
};
var engine = Task.Run(async () => await profile.AddEngineAsync(engineSettings)).Result;
Tato ukázka ukazuje, jak vytvořit delegovací modul v sadě File SDK v jazyce C++.
// C++ Example for creating a delegated file engine
std::string delegatedUserEmail = "alice@contoso.com";
FileEngine::Settings engineSettings(delegatedUserEmail, mAuthDelegate, "", "en-US", false);
// Set the identity for which all MIP operations will be performed.
engineSettings.SetDelegatedUserEmail(delegatedUserEmail);
auto enginePromise = std::make_shared<std::promise<std::shared_ptr<FileEngine>>>();
auto engineFuture = enginePromise->get_future();
mProfile->AddEngineAsync(engineSettings, enginePromise);
mEngine = engineFuture.get();
Výsledkem je, že všechny souborové moduly budou vytvořeny jménem zadaného uživatele.
Delegování na základě obslužné rutiny
Ve scénářích, kdy potřebujeme chránit soubory pouze v kontextu konkrétní identity uživatele, FileHandler poskytuje metodu předávání identity uživatele prostřednictvím objektu ProtectionSettings . Zásady a všechny dešifrovací operace se budou provádět jako ověřená identita služby. Akce ochrany bude provedena jménem zadaného uživatele; tento uživatel bude vlastníkem ochrany MIP v dokumentu.
Sada SDK pro soubory
Operace aplikace ochrany buď přímo, nebo prostřednictvím štítku, bude provedena tak, jak určil uživatel pro objekt ProtectionSettings. Tento objekt se předá do funkcí SetLabel() nebo SetProtection() v sadě File SDK.
Tato ukázka ukazuje, jak provést ochrannou operaci delegáta v File SDK pro .NET.
string delegatedUserEmail = "bob@contoso.com";
ProtectionSettings protectionSettings = new ProtectionSettings()
{
// Set the delegated mail address
DelegatedUserEmail = delegatedUserEmail
};
handler.SetLabel(engine.GetLabelById(options.LabelId), labelingOptions, protectionSettings);
// Similar pattern for SetProtection()
// handler.SetProtection(protectionDescriptor, protectionSettings);
Tato ukázka ukazuje, jak provést operaci ochrany delegáta v sadě File SDK v jazyce C++.
mip::ProtectionSettings protectionSettings;
// Set the delegated mail address
protectionSettings.SetDelegatedUserEmail(delegatedUserEmail);
handler->SetLabel(mEngine->GetLabelById(labelId), labelingOptions, protectionSettings);
Výsledkem je, že všechny operace obslužné rutiny zápisu, ve kterých se použije ochrana, budou prováděny jako delegovaný uživatel.
SDK ochrany
Sada SDK ochrany funguje jinak než sada File SDK. Existují dva typy obslužných rutin , které lze vytvořit, jeden pro publikování a jeden pro spotřebu. Podobně jako v sadě File SDK je delegovaná poštovní adresa nastavena prostřednictvím objektu nastavení pro každý typ obslužné rutiny.
platforma .NET
Tato ukázka ukazuje, jak provést delegované publikování.
string delegatedUserEmail = "bob@contoso.com";
PublishingSettings publishingSettings = new PublishingSettings(protectionDescriptor)
{
// Set the delegated mail address
DelegatedUserEmail = delegatedUserEmail
};
var protectionHandler = engine.CreateProtectionHandlerForPublishing(publishingSettings);
Tato ukázka ukazuje, jak provést delegovanou spotřebu.
string delegatedUserEmail = "bob@contoso.com";
ConsumptionSettings consumptionSettings = new ConsumptionSettings(plInfo)
{
ContentName = "A few bytes.",
// Set the delegated mail address
DelegatedUserEmail = delegatedUserEmail
};
var protectionHandler = engine.CreateProtectionHandlerForConsumption(consumptionSettings);
C++
Tato ukázka ukazuje, jak provést delegované publikování.
string delegatedUserEmail = "bob@contoso.com";
mip::ProtectionHandler::PublishingSettings publishingSettings = mip::ProtectionHandler::PublishingSettings(descriptor);
// Set the delegated mail address
publishingSettings.SetDelegatedUserEmail(delegatedUserEmail);
mEngine->CreateProtectionHandlerForPublishingAsync(publishingSettings, handlerObserver, handlerPromise);
auto handler = handlerFuture.get();
Tato ukázka ukazuje, jak provést delegovanou spotřebu.
string delegatedUserEmail = "bob@contoso.com";
mip::ProtectionHandler::ConsumptionSettings consumptionSettings = mip::ProtectionHandler::ConsumptionSettings(serializedPublishingLicense);
// Set the delegated mail address
consumptionSettings.SetDelegatedUserEmail(delegatedUserEmail);
mEngine->CreateProtectionHandlerForConsumptionAsync(consumptionSettings, handlerObserver, handlerPromise);
auto handler = handlerFuture.get();
Požadovaná oprávnění
Každý z výše uvedených scénářů vyžaduje jinou sadu oprávnění.
| Scénář | Požadováno oprávnění |
|---|---|
| Delegovaný stroj sady File SDK | UnifiedPolicy.Tenant.Read Obsah.PověřenýČtenář Obsah.DegovanýAutor |
| Delegovaný modul sady Policy SDK | UnifiedPolicy.Tenant.Read |
| Delegovaná obslužná rutina sady File SDK | Obsah.DegovanýAutor |
| SDK ochrany - delegované publikování | Obsah.DegovanýAutor |
| Delegovaná spotřeba ochranného SDK | Obsah.PověřenýČtenář |
Úplnou kontrolu oprávnění a jejich nastavení najdete v tématu Oprávnění rozhraní API pro sadu Microsoft Information Protection SDK.