Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, kullanıcının kullanabileceği koruma şablonlarını listelemek için MIP Koruması SDK'sını nasıl kullanacağınız gösterilmektedir.
Önkoşullar
Devam etmeden önce aşağıdaki önkoşulları tamamlayın:
- Öncelikle bir başlangıç Visual Studio çözümü oluşturan Hızlı Başlangıç - İstemci uygulaması başlatma - Koruma SDK'sı (C++) görevini tamamlayın. Bu "Liste koruma şablonları" hızlı başlangıcı, başlangıç çözümünü doğru şekilde oluşturmak için önceki hızlı başlangıca dayanır.
- İsteğe bağlı: RMS şablonları kavramlarını gözden geçirin.
Koruma şablonlarını listelemek için mantık ekleme
Koruma altyapısı nesnesini kullanarak kullanıcının kullanabileceği koruma şablonlarını listelemek için mantık ekleyin.
Önceki "Hızlı Başlangıç - İstemci uygulaması başlatma - Koruma SDK'sı (C++)" makalesinde oluşturduğunuz Visual Studio çözümünü açın.
Çözüm Gezgini'da, yönteminin uygulanmasını
main()içeren .cpp dosyasını projenizde açın. Proje oluşturma sırasında belirlediğiniz isim, varsayılan olarak projeyle aynı olup onu içeren yapıdadır.usingetiketinden sonrausing mip::ProtectionEngine;yönergesini dosyanın en üstüne yakın bir yere ekleyin.using std::endl;main()gövdesinin sonuna doğru, son}bloğunun kapanış küme ayracıcatchaltına vereturn 0;üstüne (önceki hızlı başlangıçta kaldığınız yer olan), aşağıdaki kodu ekleyin:// 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; }
Erişim belirteçleri oluşturmak için PowerShell betiği oluşturma
SDK'nın uygulamanızda AuthDelegateImpl::AcquireOAuth2Token istediği erişim belirteçlerini oluşturmak için aşağıdaki PowerShell betiğini kullanın. Betik, daha önce "MIP SDK kurulumu ve yapılandırması" kısmında yüklediğiniz MSAL.PS modülündeki Get-MsalToken cmdlet’ini kullanır.
Bir PowerShell betik dosyası (.ps1 uzantısı) oluşturun ve aşağıdaki betiği kopyalayıp dosyaya yapıştırın:
-
$authorityve$resourceUrldaha sonra, aşağıdaki bölümde güncelleştirilecektir. -
$redirectUrive$appIdöğelerini Microsoft Entra uygulama kaydınızda belirttiğiniz değerlerle eşleşecek şekilde güncelleyin.
$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-
Betik dosyasını kaydederek istemci uygulamanız tarafından istendiğinde daha sonra çalıştırabilirsiniz.
Uygulamayı derleme ve test etme
İstemci uygulamanızı derleyin ve test edin.
İstemci uygulamanızı derlemek için Ctrl+Shift+B (Derleme Çözümü) tuşlarını kullanın. Derlemede hata yoksa, uygulamanızı çalıştırmak için F5 (Hata ayıklamayı başlat) kullanın.
Projeniz başarıyla derlenip çalıştırılırsa, SDK yönteminizi
AcquireOAuth2Token()her çağırdığında uygulama bir erişim belirteci ister. Daha önce oluşturulmuş bir belirteci birden çok kez istenirse ve istenen değerler aynıysa yeniden kullanabilirsiniz:Komut istemi için bir erişim belirteci oluşturmak üzere PowerShell betiğinize geri dönün ve:
$authorityve$resourceUrldeğişkenlerini güncelleyin. Bunlar, 2. adımda konsol çıkışında belirtilen değerlerle eşleşmelidir.PowerShell betiğini çalıştırın.
Get-MsalTokencmdlet’i, aşağıdaki örneğe benzer bir Microsoft Entra kimlik doğrulama istemini tetikler. 2. adımda konsol çıkışında sağlanan hesabın aynısını belirtin. Oturum açma başarılı olduktan sonra PowerShell erişim belirtecini panoya yerleştirir.Ayrıca, uygulamanın oturum açma hesabı altında çalışırken MIP API'lerine erişmesine izin vermek için de onay vermeniz gerekebilir. Microsoft Entra uygulama kaydı önceden onaylanmamışsa ("MIP SDK kurulumu ve yapılandırmasında belirtildiği gibi") veya farklı bir kiracıdan (uygulamanızın kayıtlı olduğu hesap dışında) bir hesapla oturum açtığınızda bu durum ortaya çıkar. Onayınızı kaydetmek için Kabul Et'i seçin.
Erişim belirtecini 2. adımdaki isteme yapıştırdıktan sonra, konsol çıkışınızda aşağıdaki örneğe benzer şekilde koruma şablonları gösterilmelidir:
*** 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 . . .Uyarı
Sonraki hızlı başlangıçta kullandığınız koruma şablonlarından birinin veya daha fazlasının kimliğini (örneğin,
f42a3342-8706-4288-bd31-ebb85995028z) kopyalayın ve kaydedin.
Sorun giderme
C++ uygulamasını yürütme sırasında karşılaşılan sorunlar
| Özet | Hata mesajı | Çözüm |
|---|---|---|
| Hatalı erişim belirteci |
Bir özel durum oluştu... Erişim belirteci yanlış mı/süresi dolmuş mu? API çağrısı başarısız oldu: profile_add_engine_async şu hatayla başarısız oldu: [class mip::PolicySyncException] İlke alınamadı, istek HTTP durum kodu ile başarısız oldu: 401, x-ms-diagnostics: [2000001;reason="İstekle gönderilen OAuth belirteci ayrıştırılamıyor.";error_category="invalid_token"], correlationId:[aaaa0000-bb11-2222-33cc-444444dddddd]' C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (işlem 29924) 0 koduyla çıktı. Bu pencereyi kapatmak için herhangi bir tuşa basın. . . |
Projeniz başarıyla derlenmişse ancak soldaki gibi bir çıkış görüyorsanız, AcquireOAuth2Token() yönteminizde büyük olasılıkla geçersiz veya süresi dolmuş bir belirteciniz vardır.
Erişim belirteçleri oluşturmak için PowerShell betiği oluşturma bölümüne geri dönün, erişim belirtecini yeniden oluşturun, AcquireOAuth2Token() yeniden güncelleyin ve yeniden derleyin/test edin. Ayrıca tek sayfalı jwt.ms web uygulamasını kullanarak belirteci ve taleplerini inceleyip doğrulayabilirsiniz. |
Sonraki Adımlar
Kimliği doğrulanmış bir kullanıcının kullanabileceği koruma şablonlarını listelemeyi öğrendiğinize göre sonraki hızlı başlangıcı deneyin:
- GitHub'da MIP Koruma SDK'sı C++ örneğini keşfedin.