Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku Szybki start pokazano, jak za pomocą zestawu MIP Protection SDK wyświetlić listę szablonów ochrony dostępnych dla użytkownika.
Wymagania wstępne
Przed kontynuowaniem wykonaj następujące wymagania wstępne:
- Ukończ szybki start — inicjowanie aplikacji klienckich — najpierw zestaw SDK ochrony (C++), który tworzy początkowe rozwiązanie programu Visual Studio. Ten przewodnik Szybki start dotyczący szablonów ochrony listy opiera się na poprzednim przewodniku Szybki start, aby prawidłowo utworzyć rozwiązanie startowe.
- Opcjonalnie: Zapoznaj się z pojęciami dotyczącymi szablonów usługi RMS .
Dodawanie logiki w celu wyświetlenia listy szablonów ochrony
Dodaj logikę, aby wyświetlić listę szablonów ochrony dostępnych dla użytkownika przy użyciu obiektu aparatu ochrony.
Otwórz rozwiązanie programu Visual Studio utworzone w poprzednim artykule "Szybki start — inicjowanie aplikacji klienckiej — zestaw SDK ochrony (C++)".
W Eksplorator rozwiązań otwórz plik .cpp w projekcie zawierający implementację
main()metody . Domyślnie ma taką samą nazwę jak projekt zawierający go, który został określony podczas tworzenia projektu.Dodaj następującą dyrektywę
usingpousing mip::ProtectionEngine;, blisko góry pliku:using std::endl;Pod koniec sekcji
}body, poniżej zamykającego nawiasu klamrowegocatchostatniego blokureturn 0;i powyżejmain()(na którym zakończono pracę w poprzednim przewodniku Szybki start), wstaw następujący kod:// List protection templates const shared_ptr<ProtectionEngineObserver> engineObserver = std::make_shared<ProtectionEngineObserver>(); // Create a context to pass to 'ProtectionEngine::GetTemplateListAsync'. That context will be forwarded to the // corresponding ProtectionEngine::Observer methods. In this case, we use promises/futures as a simple way to detect // the async operation completes synchronously. auto loadPromise = std::make_shared<std::promise<vector<shared_ptr<mip::TemplateDescriptor>>>>(); std::future<vector<shared_ptr<mip::TemplateDescriptor>>> loadFuture = loadPromise->get_future(); engine->GetTemplatesAsync(engineObserver, loadPromise); auto templates = loadFuture.get(); cout << "*** Template List: " << endl; for (const auto& protectionTemplate : templates) { cout << "Name: " << protectionTemplate->GetName() << " : " << protectionTemplate->GetId() << endl; }
Utwórz skrypt PowerShell do generowania tokenów dostępu.
Użyj następującego skryptu programu PowerShell, aby wygenerować tokeny dostępu, które zestaw SDK żąda w AuthDelegateImpl::AcquireOAuth2Token implementacji. Skrypt używa polecenia cmdlet Get-MsalToken z modułu MSAL.PS, który został wcześniej zainstalowany, w sekcji „Konfiguracja i ustawienia zestawu MIP SDK”.
Utwórz plik skryptu programu PowerShell (rozszerzenie.ps1) i skopiuj i wklej następujący skrypt do pliku:
-
$authorityi$resourceUrlzostaną zaktualizowane później, w dalszej części. - Zaktualizuj
$appIdi$redirectUritak, aby odpowiadały wartościom określonym w rejestracji aplikacji w usłudze Microsoft Entra.
$authority = '<authority-url>' # Specified when SDK calls AcquireOAuth2Token() $resourceUrl = '<resource-url>' # Specified when SDK calls AcquireOAuth2Token() $appId = '<app-ID>' # App ID of the Microsoft Entra app registration $redirectUri = '<redirect-uri>' # Redirect URI of the Microsoft Entra app registration $scope = $resourceUrl + "/.default" $response = Get-MsalToken -ClientId $appId -Authority $authority -RedirectUri $redirectUri -Scopes $scope -Interactive $response.AccessToken | clip # Copy the access token text to the clipboard-
Zapisz plik skryptu, aby móc go uruchomić później, gdy zostanie to zażądane przez Twoją aplikację kliencką.
Kompilowanie i testowanie aplikacji
Skompiluj i przetestuj aplikację kliencą.
Użyj Ctrl+Shift+B (rozwiązanie kompilacji), aby skompilować aplikację kliencą. Jeśli kompilacja nie zawiera błędów, użyj klawisza F5 (Rozpocznij debugowanie), aby uruchomić aplikację.
Jeśli projekt kompiluje się i uruchamia pomyślnie, aplikacja prosi o token dostępu za każdym razem, gdy SDK wywołuje metodę
AcquireOAuth2Token(). Możesz ponownie użyć wcześniej wygenerowanego tokenu, jeśli zostanie wyświetlony monit wiele razy, a żądane wartości są takie same:Aby wygenerować token dostępu do monitu, wróć do swojego skryptu PowerShell i:
Zaktualizuj zmienne
$authorityi$resourceUrl. Muszą one odpowiadać wartościom określonym w danych wyjściowych konsoli w kroku 2.Uruchom skrypt programu PowerShell. Polecenie
Get-MsalTokencmdlet wyzwala monit o uwierzytelnienie Microsoft Entra, podobnie jak w poniższym przykładzie. Określ to samo konto podane w danych wyjściowych konsoli w kroku 2. Po pomyślnym zalogowaniu program PowerShell umieszcza token dostępu w schowku.Może być również konieczne wyrażenie zgody, aby umożliwić aplikacji dostęp do interfejsów API MIP podczas działania na koncie używanym do logowania. Dzieje się tak, gdy rejestracja aplikacji Microsoft Entra nie jest wcześniej zatwierdzona (zgodnie z opisem w sekcji "Konfiguracja zestawu MIP SDK") lub logujesz się przy użyciu konta z innego dzierżawcy (innego niż ten, w którym zarejestrowano aplikację). Wybierz pozycję Akceptuj , aby zarejestrować swoją zgodę.
Po wklejeniu tokenu dostępu do monitu z kroku 2 dane wyjściowe konsoli powinny wyświetlić szablony ochrony, podobnie jak w poniższym przykładzie:
*** Template List: Name: Confidential \ All Employees : a74f5027-f3e3-4c55-abcd-74c2ee41b607 Name: Highly Confidential \ All Employees : bb7ed207-046a-4caf-9826-647cff56b990 Name: Confidential : 174bc02a-6e22-4cf2-9309-cb3d47142b05 Name: Contoso Employees Only : 667466bf-a01b-4b0a-8bbf-a79a3d96f720 C:\MIP Sample Apps\ProtectionQS\Debug\ProtectionQS.exe (process 8252) exited with code 0. To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops. Press any key to continue . . .Uwaga / Notatka
Skopiuj i zapisz identyfikator jednego lub większej liczby szablonów ochrony (na przykład
f42a3342-8706-4288-bd31-ebb85995028z), którego użyjesz w następnym przewodniku Szybki start.
Rozwiązywanie problemów
Problemy podczas wykonywania aplikacji C++
| Podsumowanie | Komunikat o błędzie | Rozwiązanie |
|---|---|---|
| Nieprawidłowy token dostępu |
Wystąpił wyjątek... czy token dostępu jest niepoprawny/wygasł? Nieudane wywołanie interfejsu API: profile_add_engine_async nie powiodło się z powodu: [class mip::PolicySyncException] Nie udało się pobrać zasad, żądanie zakończyło się niepowodzeniem z kodem stanu HTTP: 401, x-ms-diagnostics: [2000001;reason="Nie można przeanalizować tokenu OAuth przesłanego z żądaniem.";error_category="invalid_token"], correlationId:[aaaa0000-bb11-2222-33cc-444444dddddd]' C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (proces 29924) zakończył działanie z kodem 0. Naciśnij dowolny klawisz, aby zamknąć to okno. . . |
Jeśli projekt zostanie pomyślnie skompilowany, ale zobaczysz dane wyjściowe podobne do przedstawionych po lewej, prawdopodobnie masz nieprawidłowy lub wygasły token w funkcji AcquireOAuth2Token(). Wróć do Utwórz skrypt PowerShell do generowania tokenów dostępu i wygeneruj ponownie token dostępu, zaktualizuj AcquireOAuth2Token() ponownie, i odbuduj/przetestuj. Możesz również sprawdzić i zweryfikować token i jego oświadczenia przy użyciu aplikacji internetowej jwt.ms jednostronicowej. |
Następne kroki
Teraz, gdy wiesz już, jak wyświetlić listę szablonów ochrony dostępnych dla uwierzytelnionego użytkownika, wypróbuj następny szybki start:
- Zapoznaj się z przykładem zestawu MIP Protection SDK języka C++ w GitHub.