Pojęcie — delegowanie w zestawie SDK miP
Zestaw Microsoft Information Protection SDK udostępnia dwie ścieżki do działania aplikacji opartych na usłudze w imieniu innego użytkownika. Delegowanie może być konieczne, gdy pliki muszą być oznaczone etykietą, chronione lub używane w kontekście tożsamości użytkownika innej niż tożsamość usługi. Tę tożsamość delegowaną można ustawić na poziomie aparatu lub programu obsługi i to, gdzie zostanie ustawiona, zależy od przypadku użycia.
Delegowanie Ustawienia oparte na a aparatach
Zestaw SDK programu MIP obsługuje podanie adresu e-mail delegowanego użytkownika w obiekcie ustawień dla wszystkich zestawów SDK. Pliki, ochrona i zasady. Można to osiągnąć, DelegatedUserEmail ustawiając właściwość obiektu ustawień. W efekcie aparat zainicjowany za pomocą tego obiektu ustawień będzie wykonywać wszystkie operacje MIP tak, jakby to użytkownik podał tę właściwość. Zasady zostaną pobrane dla tego konkretnego użytkownika i wszystkie operacje ochrony będą wykonywane jako ten użytkownik, w tym być właścicielem chronionych plików.
Wzorzec ten jest przydatny, gdy aplikacja oparta na usłudze musi działać w pełni jako użytkownik; zasady muszą być pobierane tylko dla określonego użytkownika, a wszystkie operacje odszyfrowywania muszą być wykonywane w kontekście tożsamości użytkownika. Podczas tworzenia tego aparatu ważne jest, aby podczas tworzenia tego aparatu aplikacja określała identyfikator aparatu unikatowy dla tego użytkownika, często adres e-mail. Dzięki temu korzyści z buforowania zostaną zrealizowane. Jeśli nie podano unikatowego identyfikatora aparatu, wydajność aplikacji może być niska.
Zestaw SDK pliku
W poniższym przykładzie pokazano, jak ustawić tożsamość delegowaną dla aplikacji File SDK w językach C++ i C#. Tego samego wzorca można użyć dla zestawu SDK zasad.
W tym przykładzie pokazano, jak utworzyć aparat pełnomocnika w zestawie Sdk pliku w programie .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;
W tym przykładzie pokazano, jak utworzyć aparat delegowania w zestawie Sdk pliku w języku 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();
W efekcie wszystkie aparaty plików zostaną utworzone w imieniu określonego użytkownika.
Delegowanie oparte na programie obsługi
W scenariuszach, w których potrzebujemy tylko chronić pliki w kontekście określonej tożsamości użytkownika, zapewnia ona metodę przekazywania tożsamości użytkownika za pomocą ProtectionSettings obiektu. Zasady i wszelkie operacje odszyfrowywania będą wykonywane jako uwierzytelniona tożsamość usługi. Akcja ochrony będzie wykonywana w imieniu określonego użytkownika; ten użytkownik będzie właścicielem ochrony przed mip w dokumencie.
Zestaw SDK pliku
Tylko operacja stosowania ochrony bezpośrednio lub za pośrednictwem etykiety zostanie wykonana jako użytkownik dostarczony dla ProtectionSettings obiektu. Ten obiekt jest przekazywany do funkcji SetLabel()SetProtection() (lub) w zestawie File SDK.
W tym przykładzie pokazano, jak wykonać operację ochrony pełnomocnika w zestawie Sdk pliku w programie .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);
W tym przykładzie pokazano, jak wykonać operację ochrony pełnomocnika w zestawie File SDK w języku C++.
mip::ProtectionSettings protectionSettings;
// Set the delegated mail address
protectionSettings.SetDelegatedUserEmail(delegatedUserEmail);
handler->SetLabel(mEngine->GetLabelById(labelId), labelingOptions, protectionSettings);
W efekcie jako użytkownik delegowany zostaną wykonane wszystkie operacje zapisu obsługi, w których zastosowano ochronę.
Zestaw SDK ochrony
Zestaw SDK ochrony działa inaczej niż zestaw SDK pliku. Można tworzyć dwa typy programów obsługi: jeden do publikowania i jeden do użycia. Podobnie jak w zestawie File SDK, delegowany adres e-mail jest ustawiany za pośrednictwem obiektu ustawień dla każdego typu programu obsługi.
.NET
W tym przykładzie pokazano sposób publikowania delegowanego.
string delegatedUserEmail = "bob@contoso.com";
PublishingSettings publishingSettings = new PublishingSettings(protectionDescriptor)
{
// Set the delegated mail address
DelegatedUserEmail = delegatedUserEmail
};
var protectionHandler = engine.CreateProtectionHandlerForPublishing(publishingSettings);
W tym przykładzie pokazano sposób użycia delegowanego.
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++
W tym przykładzie pokazano sposób użycia delegowanego.
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();
W tym przykładzie pokazano sposób publikowania delegowanego.
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();
Wymagane uprawnienia
Każdy z powyższych scenariuszy wymaga innego zestawu uprawnień.
| Scenariusz | Uprawnienie Wymagane |
|---|---|
| Aparat delegowany zestawu SDK pliku | UnifiedPolicy.Tenant.Read Content.DelegatedReader Content.DelegatedWriter |
| Aparat delegowany zestawu SDK zasad | UnifiedPolicy.Tenant.Read |
| Delegowany program obsługi zestawu SDK plików | Content.DelegatedWriter |
| Delegowana publikowanie za pomocą zestawu SDK ochrony | Content.DelegatedWriter |
| Delegowanie użycia zestawu SDK ochrony | Content.DelegatedReader |
Aby zapoznać się z pełnym przeglądem uprawnień i miejsca ich ustawienia, przejrzyj uprawnienia interfejsu API zestawu SDK pakietu Microsoft Information Protection SDK
Następne kroki
- Przejrzyj uprawnienia interfejsu API zestawu SDK Microsoft Information Protection SDK