Udostępnij przez


Microsoft Information Protection SDK — pojęcia dotyczące obiektów profilów i silnika

Profile

MipContext jest klasą służącą do przechowywania ustawień specyficznych dla SDK, natomiast profil jest klasą nadrzędną dla wszystkich operacji związanych z etykietowaniem i ochroną w ramach MIP SDK. Przed użyciem dowolnego z trzech zestawów interfejsów API aplikacja kliencka musi utworzyć profil. Przyszłe operacje są wykonywane przez profil lub przez inne obiekty dodane do profilu. Zalecany jest tylko pojedynczy obiekt profilu na proces. Utworzenie więcej niż jednego może spowodować nieoczekiwane zachowanie.

Istnieją trzy typy profilów w zestawie MIP SDK:

Interfejs API używany w aplikacji korzystającej określa, która klasa profilu powinna być używana.

Sam profil zapewnia następujące funkcje:

  • Określa, czy stan powinien być załadowany w pamięci, czy utrwalone na dysku, a jeśli jest on utrwalone na dysku, powinien być zaszyfrowany.
  • Definiuje element mip::ConsentDelegate , który ma być używany do operacji wyrażania zgody.
  • Definiuje implementację mip::FileProfile::Observer , która będzie używana na potrzeby asynchronicznych wywołań zwrotnych dla operacji profilu.

Ustawienia profilu

  • MipContext MipContext: obiekt, który został zainicjowany do przechowywania informacji o aplikacji, ścieżki stanu itp.
  • CacheStorageType: definiuje sposób przechowywania stanu: w pamięci, na dysku lub na dysku jako zaszyfrowane.
  • consentDelegate: współużytkowany wskaźnik klasy mip::ConsentDelegate.
  • observer: udostępniony wskaźnik do implementacji profilu Observer (w PolicyProfile systemach, ProtectionProfile i FileProfile).
  • applicationInfo: obiekt mip::ApplicationInfo. Informacje o aplikacji, która korzysta z zestawu SDK odpowiadającego identyfikatorowi rejestracji oraz nazwie Twojej aplikacji Microsoft Entra.

Silniki

Silniki zestawu SDK plików, profilu i ochrony udostępniają interfejs dla operacji wykonywanych na określonej tożsamości. Jeden aparat jest dodawany do obiektu Profile dla każdego użytkownika lub jednostki usługi, który loguje się do aplikacji. Można wykonywać delegowane operacje za pośrednictwem programu mip::ProtectionSettings i programu obsługi plików lub ochrony. Aby uzyskać więcej informacji, zobacz sekcję Ustawienia ochrony w pojęciach FileHandler.

Istnieją trzy klasy silnika w zestawie SDK, jedna dla każdego interfejsu API. Na poniższej liście przedstawiono klasy silników i kilka funkcji skojarzonych z każdą z nich.

  • mip::ProtectionEngine
  • mip::PolicyEngine
    • ListSensitivityLabels(): Pobiera listę etykiet dla załadowanego silnika.
    • GetSensitivityLabel(): pobiera etykietę z istniejącej zawartości.
    • ComputeActions(): Podany z identyfikatorem etykiety i opcjonalnymi metadanymi zwraca listę akcji, które powinny wystąpić dla określonego elementu.
  • mip::FileEngine
    • ListSensitivityLabels(): Pobiera listę etykiet dla załadowanego silnika.
    • CreateFileHandler(): Tworzy mip::FileHandler dla określonego pliku lub strumienia.

Utworzenie silnika wymaga przekazania określonego obiektu ustawień silnika, który zawiera ustawienia dla typu silnika, jaki ma zostać utworzony. Obiekt ustawień umożliwia deweloperowi określenie szczegółów dotyczących identyfikatora silnika, mip::AuthDelegate implementacji, ustawień regionalnych i ustawień niestandardowych, a także innych szczegółów dotyczących interfejsu API.

Stany aparatu

Silnik może mieć jeden z dwóch stanów:

  • CREATED: Utworzono oznacza, że zestaw SDK dysponuje wystarczającymi informacjami o stanie lokalnym po wywołaniu wymaganych usług serwera zaplecza.
  • LOADED: Zestaw SDK utworzył wymagane struktury danych, aby aparat działał.

Silnik musi być zarówno utworzony, jak i załadowany, aby wykonywać jakiekolwiek operacje. Klasa Profile udostępnia kilka metod zarządzania aparatami: AddEngineAsync, DeleteEngineAsynci UnloadEngineAsync.

W poniższej tabeli opisano możliwe stany aparatu i metody, które mogą zmienić ten stan:

Stan aparatu BRAK UTWORZONO ZAŁADOWANY
BRAK AddEngineAsync
UTWORZONO DeleteEngineAsync AddEngineAsync
ZAŁADOWANY DeleteEngineAsync UnloadEngineAsync

Identyfikator silnika

Każdy silnik ma unikatowy identyfikator id, który jest używany we wszystkich operacjach zarządzania silnikiem. Aplikacja może dostarczyć element idlub zestaw SDK może go wygenerować, jeśli nie jest on dostarczany przez aplikację. Wszystkie inne właściwości silnika (na przykład adres e-mail w informacjach o tożsamości) są nieprzezroczystymi danymi dla SDK. Zestaw SDK nie wykonuje logiki, aby utrzymać inne właściwości jako unikatowe, ani też wymuszać innych ograniczeń.

Ważne

Najlepszym rozwiązaniem jest użycie identyfikatora silnika unikatowego dla użytkownika i użycie go każdorazowo podczas wykonywania operacji z zestawem SDK. Brak podania istniejącego, unikatowego identyfikatora silnika dla użytkownika lub usługi spowoduje dodatkowe podróże sieciowe. Te cykle serwisowe mogą spowodować obniżenie wydajności i ograniczenia przepustowości. **

// Create the FileEngineSettings object
FileEngine::Settings engineSettings(mip::Identity(mUsername), // This will be the engine ID. UPN, email address, or other unique user identifiers are recommended. 
													          mAuthDelegate,            // authDelegate implementation 
													          "",                       // ClientData
													          "en-US",                  // Client Locale
                                    false);                   // Load Sensitive Information Types

Metody zarządzania aparatem

Jak wspomniano wcześniej, w zestawie SDK istnieją trzy metody zarządzania silnikami: AddEngineAsync, DeleteEngineAsync i UnloadEngineAsync.

AddEngineAsync

Ta metoda ładuje istniejący silnik lub tworzy go, jeśli jeszcze nie istnieje w stanie lokalnym.

Jeśli aplikacja nie udostępnia id w FileEngineSettings, AddEngineAsync generuje nowy element id. Następnie sprawdza, czy aparat z tym id już istnieje w lokalnej pamięci podręcznej magazynu. Jeśli tak, ładuje ten silnik. Jeśli silnik nie istnieje w lokalnej pamięci podręcznej, zostanie utworzony nowy silnik przez wywołanie niezbędnych interfejsów API i usług backendowych.

W obu przypadkach jeśli metoda powiedzie się, silnik jest ładowany i gotowy do użycia.

DeleteEngineAsync

Usuwa silnik z danym id. Wszystkie ślady aparatu są usuwane z lokalnej pamięci podręcznej.

UnloadEngineAsync

Zwalnia struktury danych w pamięci dla aparatu przy użyciu danego idelementu . Stan lokalny tego silnika jest nadal nienaruszony i można go ponownie załadować za pomocą AddEngineAsync.

Ta metoda pozwala aplikacji rozważnie zarządzać użyciem pamięci, poprzez zwolnienie silników, które nie są spodziewane do użycia w najbliższym czasie.

Następne kroki