Udostępnij za pośrednictwem


Microsoft Information Protection SDK — pojęcia dotyczące aparatu zestawu SDK plików

Zestaw mip::FileEngine SDK pliku MIP udostępnia interfejs dla wszystkich operacji wykonywanych w imieniu określonej tożsamości. Jeden aparat zostanie dodany dla każdego użytkownika, który loguje się do aplikacji, a wszystkie wykonywane przez aparat operacje zostaną wykonane w kontekście tej tożsamości.

Ma FileEngine dwie podstawowe obowiązki: Wyświetlanie listy etykiet dla uwierzytelnionego użytkownika i tworzenie procedur obsługi plików w celu wykonywania operacji na plikach w imieniu użytkownika.

  • mip::FileEngine
  • ListSensitivityLabels(): Pobiera listę etykiet dla załadowanego aparatu.
  • CreateFileHandler(): tworzy mip::FileHandler element dla określonego pliku lub strumienia.

Dodawanie aparatu plików

Zgodnie z opisem w obiektach Profile i Engine aparat może mieć dwa stany — CREATED lub LOADED. Jeśli nie jest to jeden z tych dwóch stanów, nie istnieje. Aby utworzyć i załadować stan, wystarczy wykonać jedno wywołanie metody FileProfile::LoadAsync. Jeśli aparat już istnieje w stanie buforowanym, będzie LOADEDto . Jeśli nie istnieje, będzie CREATED to i LOADED. CREATED oznacza, że aplikacja ma wszystkie informacje z usługi potrzebne do załadowania aparatu. LOADED oznacza, że wszystkie struktury danych niezbędne do wykorzystania aparatu zostały utworzone w pamięci.

Tworzenie ustawień aparatu plików

Podobnie jak w przypadku profilu aparat wymaga również obiektu ustawień . mip::FileEngine::Settings Ten obiekt przechowuje unikatowy identyfikator aparatu, implementację mip::AuthDelegate , dostosowywalne dane klienta, które mogą być używane do debugowania lub telemetrii, a także opcjonalnie ustawienia regionalne.

W tym miejscu utworzymy FileEngine::Settings obiekt o nazwie engineSettings przy użyciu tożsamości użytkownika aplikacji.

FileEngine::Settings engineSettings(
  mip::Identity(mUsername), // mip::Identity.
  authDelegateImpl,         // auth delegate object
  "",                       // Client data. Customizable by developer, stored with engine.
  "en-US",                  // Locale.
  false);                   // Load sensitive information types for driving classification.

Podczas tworzenia aparatuUstawienia w ten sposób ważne jest również jawne ustawienie unikatowego identyfikatora aparatu za pomocą:

engineSettings.SetEngineId(engineId);

Użycie nazwy użytkownika lub wiadomości e-mail pomaga upewnić się, że ten sam aparat jest ładowany za każdym razem, gdy użytkownik korzysta z usługi lub aplikacji.

Ponadto prawidłowe jest podanie niestandardowego identyfikatora aparatu:

FileEngine::Settings engineSettings(
  "myEngineId",     // string
  authDelegateImpl, // auth delegate object
  "",               // Client data in string format. Customizable by developer, stored with engine.
  "en-US",          // Locale. Default is en-US
  false);           // Load sensitive information types for driving classification. Default is false.

Najlepszym rozwiązaniem jest to, że pierwszy parametr id, powinien być czymś, co umożliwia łatwe połączenie aparatu ze skojarzonym użytkownikiem. Coś takiego jak adres e-mail, nazwa UPN lub identyfikator GUID obiektu usługi AAD zapewni, że identyfikator jest zarówno unikatowy, jak i można go załadować ze stanu lokalnego bez wywoływania usługi.

Dodawanie aparatu plików

Aby dodać aparat, wrócimy do wzorca obietnicy/przyszłego użytego do załadowania profilu. Zamiast tworzyć obietnicę dla mip::FileProfileelementu , jest ona tworzona przy użyciu polecenia mip::FileEngine.

  //auto profile will be std::shared_ptr<mip::FileProfile>
  auto profile = profileFuture.get();

  // Instantiate the AuthDelegate implementation.
  auto authDelegateImpl = std::make_shared<sample::auth::AuthDelegateImpl>(appInfo, userName, password);

  //Create the FileEngine::Settings object
  FileEngine::Settings engineSettings("UniqueID", authDelegateImpl, "");

  //Create a promise for std::shared_ptr<mip::FileEngine>
  auto enginePromise = std::make_shared<std::promise<std::shared_ptr<mip::FileEngine>>>();

  //Instantiate the future from the promise
  auto engineFuture = enginePromise->get_future();

  //Add the engine using AddEngineAsync, passing in the engine settings and the promise
  profile->AddEngineAsync(engineSettings, enginePromise);

  //get the future value and store in std::shared_ptr<mip::FileEngine>
  auto engine = engineFuture.get();

Wynikiem końcowym powyższego kodu jest dodanie aparatu dla uwierzytelnionego użytkownika do profilu.

Wyświetlanie listy etykiet poufności

Za pomocą dodanego aparatu można teraz wyświetlić listę wszystkich etykiet poufności dostępnych dla uwierzytelnionego użytkownika, wywołując metodę engine->ListSensitivityLabels().

ListSensitivityLabels() Pobiera listę etykiet i atrybutów tych etykiet dla określonego użytkownika z usługi. Wynik jest przechowywany w wektorze std::shared_ptr<mip::Label>.

Przeczytaj więcej tutaj na temat .mip::Label

ListSensitivityLabels()

std::vector<shared_ptr<mip::Label>> labels = engine->ListSensitivityLabels();

Lub, uproszczone:

auto labels = engine->ListSensitivityLabels();

Drukowanie nazw jest łatwym sposobem pokazania, że pomyślnie pobraliśmy zasady z usługi i udało nam się uzyskać etykiety. Aby zastosować etykietę, wymagany jest identyfikator etykiety. Poniższy kod iteruje wszystkie etykiety, wyświetlając name i id dla każdej etykiety nadrzędnej i podrzędnej.

//Iterate through all labels in the vector
for (const auto& label : labels) {
  //Print label name and GUID
  cout << label->GetName() << " : " << label->GetId() << endl;

  //Print child label name and GUID
  for (const auto& child : label->GetChildren()) {
    cout << "->  " << child->GetName() <<  " : " << child->GetId() << endl;
  }
}

Kolekcja zwrócona przez GetSensitivityLabels() program może służyć do wyświetlania mip::Label wszystkich etykiet dostępnych dla użytkownika, a następnie, po wybraniu, użyj identyfikatora, aby zastosować etykiety do pliku.

Następne kroki

Teraz, gdy profil zostanie załadowany, aparat dodany i mamy etykiety, możemy dodać procedurę obsługi, aby rozpocząć odczytywanie, zapisywanie lub usuwanie etykiet z plików. Zobacz Programy obsługi plików w zestawie MIP SDK.