Microsoft Information Protection SDK — koncepcje aparatu SDK pliku

Zestaw SDK pliku programu MIP zapewnia interfejs dla wszystkich operacji wykonywanych mip::FileEngine w imieniu określonej tożsamości. Jeden aparat zostanie dodany do każdego użytkownika, który się iniekuje do aplikacji, a wszystkie operacje, które wykonuje aparat, będą wykonywane w kontekście tej tożsamości.

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

  • mip::FileEngine
  • ListSensitivityLabels(): pobiera listę etykiet dla załadowanego aparatu.
  • CreateFileHandler(): tworzy określony mip::FileHandler plik lub strumień.

Dodawanie aparatu plików

Tak jak w przypadku obiektów Profile i Engineaparat może mieć dwa stany — lub LOADED . Jeśli nie należy on do jednego z tych dwóch stanów, nie istnieje. Aby zarówno utworzyć stan, jak i załadować go, wystarczy jedno połączenie z FileProfile::LoadAsync . Jeśli aparat już istnieje w stanie buforowanej pamięci podręcznej, LOADED będzie . Jeśli nie istnieje, będzie i CREATEDLOADED . CREATED oznacza, że aplikacja zawiera wszystkie informacje z usługi wymaganej do załadowania aparatu. LOADED oznacza, że wszystkie struktury danych niezbędne do wykorzystania aparatu zostały utworzone w pamięci.

Tworzenie aparatu Ustawienia

Podobnie jak profil aparat wymaga również obiektu ustawień, mip::FileEngine::Settings . Ten obiekt przechowuje unikatowy identyfikator aparatu, implemenatę, dostosowywalne dane klienta, które mogą być używane do debugowania lub telemetrii, oraz opcjonalnie informacje o mip::AuthDelegate ustawieniach regionalnych.

Tutaj tworzymy FileEngine::Settings obiekt o nazwie FileEngine::Settings 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 ustawienia engineSettings w ten sposób należy jawnie ustawić również unikatowy identyfikator engineId za pośrednictwem:

engineSettings.SetEngineId(engineId);

Użycie nazwy użytkownika lub adresu e-mail pomaga zapewnić, że ten sam aparat jest ładowany za każdym razem, gdy użytkownik korzysta z usługi lub aplikacji.

Prawidłowy jest również identyfikator aparatu niestandardowego:

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, aby pierwszy parametr , był czymś, co umożliwia łatwe połączenie aparatu ze id skojarzonym użytkownikiem. Taki jak adres e-mail, główną nazwa użytkownika AAD identyfikator GUID obiektu zapewnia, że identyfikator jest unikatowy i może być ładowany z stanu lokalnego bez wywoływania usługi.

Dodawanie aparatu plików

Aby dodać aparat, wróćmy do wzorca obietnicy/przyszłego użytego do załadowania profilu. Zamiast tworzyć obietnicę mip::FileProfile dla , jest ona tworzona przy użyciu 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 powyższego kodu jest dodanie aparatu uwierzytelnionego użytkownika do profilu.

Lista etykiet wrażliwości

Za pomocą dodanego aparatu można teraz wyświetlić listę wszystkich etykiet wrażliwości dostępnych dla uwierzytelnionego użytkownika, dzwoniąc pod numer 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> .

Więcej informacji znajdziesz tutaj na temat .

ListSensitivityLabels()

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

Lub uproszczonie:

auto labels = engine->ListSensitivityLabels();

Drukowanie nazw to łatwy sposób na pokazanie, że pomyślnie pozysuliśmy zasady z usługi i że udało nam się pobrać etykiety. Aby zastosować etykietę, wymagany jest identyfikator etykiety. Poniższy kod wyświetla wszystkie etykiety z wyświetlonymi etykietami name "i" dla każdego elementu id nadrzędnego i podrzędnego.

//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;
  }
}

Kolekcji zwróconych przez można użyć w celu wyświetlenia wszystkich etykiet dostępnych dla użytkownika, a następnie, jeśli ta opcja jest zaznaczona, użyć tego identyfikatora w celu zastosowania etykiet mip::LabelGetSensitivityLabels() do pliku.

Następne kroki

Teraz, gdy profil został załadowany, dodano aparat i mamy etykiety, możemy dodać program obsługi, aby rozpocząć odczytywanie, pisanie lub usuwanie etykiet z plików. Zobacz Programy obsługi plików w zestawie MIP SDK.