Hızlı Başlangıç: Liste Koruma Şablonları (C++)
Bu Hızlı Başlangıç, kullanıcının kullanabileceği koruma şablonları için MIP Koruma SDK'sını nasıl kullanacağınızı gösterir.
Ön koşullar
Henüz yapmadıysanız devam etmeden önce aşağıdaki önkoşulları tamamladığınızdan emin olun:
- Eksiksiz Hızlı Başlangıç - İstemci uygulaması başlatma - İlk olarak bir başlangıç Visual Studio çözümü oluşturan Koruma SDK'sı (C++). Bu "Liste koruma şablonları" Hızlı Başlangıcı, başlangıç çözümünün düzgün oluşturulması için öncekine dayanır.
- İsteğe bağlı olarak: 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 kullanarak, yönteminin uygulanmasını
main()
içeren projenizde .cpp dosyasını açın. Varsayılan olarak, proje oluşturma sırasında belirttiğiniz, onu içeren projeyle aynı ada sahiptir.Aşağıdaki yönergeyi
using mip::ProtectionEngine;
dosyasınınusing
en üstüne yakınına ekleyin:using std::endl;
Gövdenin
main()
sonuna doğru, soncatch
bloğun kapanış küme ayraçlarının}
altına ve yukarıdakireturn 0;
(önceki Hızlı Başlangıçta kaldığınız yer) 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
Uygulamanızda AuthDelegateImpl::AcquireOAuth2Token
SDK tarafından istenen erişim belirteçleri oluşturmak için aşağıdaki PowerShell betiğini kullanın. Betik, "MIP SDK Kurulumu ve yapılandırması" bölümünde daha önce yüklediğiniz ADAL.PS modülünden cmdlet'ini kullanır Get-ADALToken
.
Bir PowerShell Betiği dosyası (.ps1 uzantısı) oluşturun ve aşağıdaki betiği kopyalayıp dosyaya yapıştırın:
$authority
ve$resourceUrl
daha sonra, aşağıdaki bölümde güncelleştirilecektir.- ve
$redirectUri
değerlerini, Microsoft Entra uygulama kaydınızda belirttiğiniz değerlerle eşleşecek şekilde güncelleştirin$appId
.
$authority = '<authority-url>' # Specified when SDK calls AcquireOAuth2Token() $resourceUrl = '<resource-url>' # Specified when SDK calls AcquireOAuth2Token() $appId = '<app-ID>' # App ID of the Azure AD app registration $redirectUri = '<redirect-uri>' # Redirect URI of the Azure AD app registration $response = Get-ADALToken -Resource $resourceUrl -ClientId $appId -RedirectUri $redirectUri -Authority $authority -PromptBehavior:RefreshSession $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
Son olarak, istemci uygulamanızı derleyin ve test edin.
İstemci uygulamanızı derlemek için Ctrl+Shift+b (Çözüm Derle) tuşlarını kullanın. Derleme hatanız 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. Birden çok kez istenirse ve istenen değerler aynıysa, önceden oluşturulmuş bir belirteci yeniden kullanabilirsiniz:İstem için bir erişim belirteci oluşturmak için PowerShell betiğinize dönün ve:
ve
$resourceUrl
değişkenlerini güncelleştirin$authority
. Bunlar, 2. adımda konsol çıkışında belirtilen değerlerle eşleşmelidir.PowerShell betiğini çalıştırın. Cmdlet,
Get-ADALToken
aşağıdaki örneğe benzer şekilde bir Microsoft Entra kimlik doğrulama istemi tetikler. 2. adımda konsol çıkışında sağlanan hesabın aynısını belirtin. Oturum başarıyla açıldıktan sonra erişim belirteci panoya yerleştirilir.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'e tıklamanız yeterlidir.
Erişim belirtecini 2. adımdaki isteme yapıştırdıktan sonra konsol çıkışınız aşağıdaki örneğe benzer şekilde koruma şablonlarını göstermelidir:
*** 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 . . .
Dekont
Bir veya daha fazla koruma şablonunun kimliğini (örneğin,
f42a3342-8706-4288-bd31-ebb85995028z
) kopyalayın ve sonraki Hızlı Başlangıçta kullanacağınız şekilde kaydedin.
Sorun giderme
C++ uygulamasını yürütme sırasında karşılaşılan sorunlar
Özet | Hata iletisi | Çözüm |
---|---|---|
Hatalı erişim belirteci | Bir özel durum oluştu... Erişim belirteci yanlış mı/süresi dolmuş mu? Başarısız API çağrısı: profile_add_engine_async Başarısız: [class mip::P olicySyncException] başarısız ilke alma, İstek http durum koduyla 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:[35bc0023-3727-4eff-8062-000006d5d672]' 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 sola benzer bir çıkış görüyorsanız, yönteminizde büyük olasılıkla geçersiz veya süresi dolmuş bir belirteciniz AcquireOAuth2Token() vardır. Erişim belirteçleri oluşturmak ve erişim belirtecini yeniden oluşturmak, yeniden güncelleştirmek AcquireOAuth2Token() ve yeniden derlemek/yeniden test etmek için PowerShell betiği oluşturma bölümüne geri dönün. 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:
[Metni şifreleme ve şifresini çözme] (quick-protection-encrypt-decrypt text-cpp.md)
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin