Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Som tidigare beskrivits är de primära funktionerna i policy-SDK:t att:
- lista tillgängliga etiketter
- returnera en uppsättning åtgärder som programmet ska vidta, baserat på aktuellt och önskat tillstånd
Det sista steget i processen är att ange en etikettidentifierare och eventuellt metadata om den befintliga etiketten till ComputeActions() funktionen.
Exempelkod för den här artikeln finns på GitHub.
Beräkna en åtgärd för en ny etikett
Beräkna mip::Actions för en ny etikett med hjälp av ExecutionStateImpl, som definieras i ExecutionState.
// Replace with valid label ID.
string newLabelId = "d7b93a40-4df3-47e4-b2fd-7862fc6b095c";
sample::upe::ExecutionStateOptions options;
// Resolve desired label id to mip::Label and set in ExecutionStateOptions.
options.newLabel = mEngine->GetLabelById(newLabelId);
// Initialize ExecutionStateImpl with options, create handler, call ComputeActions.
std::unique_ptr<ExecutionStateImpl> state(new ExecutionStateImpl(options));
auto handler = mEngine->CreatePolicyHandler(false); // Don't generate audit event.
auto actions = handler->ComputeActions(*state);
Att skriva endast mip::MetadataActions, som returneras som en del av actions, visar:
Add: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_Enabled : true
Add: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_SetDate : 2018-10-23T20:39:06-0800
Add: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_Method : Standard
Add: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_Name : Contoso FTEs (C)
Add: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_SiteId : 94f6984e-8d31-4794-bdeb-3ac89ad2b660
Add: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_ActionId : 2266fbe8-a0d9-44e8-bad8-00008f2a0915
Add: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_ContentBits : 3
Beräknar PolicyHandler åtgärderna och returnerar en std::vector av mip::Action. Det är upp till programutvecklaren att tillämpa dessa metadata på filen eller data.
Anmärkning
I föregående exempel visas endast utdata mip::MetadataAction . För ett exempel som visar andra åtgärdstyper, se exempelsamlingarna i Policy SDK-nedladdningen.
Beräkningsåtgärder med en befintlig etikett
När du använder princip-SDK läser programmet metadata från innehåll. Programmet tillhandahåller dessa metadata till API:et som en del av mip::ExecutionState.
ComputeActions() kan hantera mer komplexa åtgärder än att använda en ny etikett i ett dokument som inte är etiketterat. I följande exempel visas hur du nedgraderar en etikett från en känsligare etikett till en mindre känslig etikett. Exemplet simulerar den här processen genom att läsa en kommaavgränsad sträng med metadata och ge den till API:et via mip::ExecutionState.
Anmärkning
Exemplet använder en verktygsfunktion med namnet SplitString(). Ett exempel finns i verktygets funktionskällaSplitString().
// Replace with valid label ID.
string newLabelId = "d7b93a40-4df3-47e4-b2fd-7862fc6b095c";
// Comma and Pipe Delimited Metadata.
string metadata = "MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_Enabled|true,MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_SetDate|2018-10-23T21:53:31-0800,MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_Method|Standard,MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_Name|Contoso FTEs (C),MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_SiteId|94f6984e-8d31-4794-bdeb-3ac89ad2b660,MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_ActionId|b56491d9-155f-40ff-866f-0000acd85c31,MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_ContentBits|7";
// Create ExecutionStateOptions and resolve newLabelId to mip::Label
sample::upe::ExecutionStateOptions options;
options.newLabel = mEngine->GetLabelById(newLabelId);
// Split metadata string by commas, store in vector.
vector<string> metadataPairs = sample::utils::SplitString(metadata, ',');
// Iterate through each string, splitting by the pipe.
// Add each key/value pair to ExecutionStateOptions metadata.
for (const string& metadataPair : metadataPairs) {
vector<string> keyValue = sample::utils::SplitString(metadataPair, '|');
options.metadata[keyValue[0]] = keyValue[1];
}
// Initialize ExecutionStateImpl with options, create handler, call ComputeActions
std::unique_ptr<ExecutionStateImpl> state(new ExecutionStateImpl(options));
auto handler = mEngine->CreatePolicyHandler(false); // Don't generate audit event.
auto actions = handler->ComputeActions(*state);
Föregående exempel kan resultera i flera åtgärder. Dessa åtgärder beror på de etiketter som anges som indata och etikettkonfigurationen. Resultatet är minst en enda mip::MetadataAction som innehåller de data som ska tas bort genom GetMetadataToRemove() och de data som ska läggas till via GetMetadataToAdd().
Add: MSIP_Label_d48d0e60-c766-40d6-96d3-53b2857fe775_Enabled : true
Add: MSIP_Label_d48d0e60-c766-40d6-96d3-53b2857fe775_SetDate : 2018-10-23T23:59:41-0800
Add: MSIP_Label_d48d0e60-c766-40d6-96d3-53b2857fe775_Method : Standard
Add: MSIP_Label_d48d0e60-c766-40d6-96d3-53b2857fe775_Name : General
Add: MSIP_Label_d48d0e60-c766-40d6-96d3-53b2857fe775_SiteId : 94f6984e-8d31-4794-bdeb-3ac89ad2b660
Add: MSIP_Label_d48d0e60-c766-40d6-96d3-53b2857fe775_ActionId : 447a996b-28ea-482c-b0b5-000075bd4bb3
Add: MSIP_Label_d48d0e60-c766-40d6-96d3-53b2857fe775_ContentBits : 7
Remove: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_Name
Remove: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_Enabled
Remove: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_SiteId
Remove: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_SetDate
Remove: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_Method
Remove: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_ContentBits
Remove: MSIP_Label_d7b93a40-4df3-47e4-b2fd-7862fc6b095c_ActionId
Nästa steg
- Lär dig hur du skickar granskningshändelser till Microsoft Purview.
- Ladda ned princip-SDK-exemplen från GitHub och prova princip-SDK:et.