命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
使用 分类结果,计算应应用 的信息保护标签 ,并返回为正确标记信息而必须采取的操作集。 当应根据文件内容的分类自动设置标签,而不是由用户或服务直接标记时,此 API 非常有用。
若要根据分类结果进行评估,请提供 contentInfo,其中包括现有内容元数据 键/值对和 分类结果。 API 返回一个 信息ProtectionAction ,其中包含以下更多内容之一:
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
InformationProtectionPolicy.Read |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| 应用程序 |
InformationProtectionPolicy.Read.All |
HTTP 请求
POST /informationProtection/policy/labels/{id}/evaluateClassificationResults
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
| Content-type |
application/json. Required. |
| User-Agent |
描述调用应用程序的名称和版本。 详细信息将在 Azure 信息保护分析中显示。 建议的格式为 ApplicationName/Version。 可选。 |
请求正文
在请求正文中,提供具有以下参数的 JSON 对象。
| 参数 |
类型 |
说明 |
| contentInfo |
contentInfo |
提供有关内容格式、内容状态和现有 元数据 作为键/值对的详细信息。 |
| classificationResults |
classificationResult 集合 |
包含数据分类终结点返回的分类结果集。 分类信息用于根据 Office 365 安全与合规中心中的 Microsoft Purview 信息保护策略标签配置确定适当的标签。 |
响应
如果成功,此方法在响应正文中返回 200 OK 响应代码和新的 informationProtectionAction 集合对象。
示例
以下示例演示如何调用此 API。
请求
下面展示了示例请求。
POST https://graph.microsoft.com/beta/informationProtection/policy/labels/evaluateClassificationResults
Content-type: application/json
User-agent: ContosoLOBApp/1.0
{
"contentInfo": {
"@odata.type": "#microsoft.graph.contentInfo",
"format@odata.type": "#microsoft.graph.contentFormat",
"format": "default",
"identifier": null,
"state@odata.type": "#microsoft.graph.contentState",
"state": "rest"
},
"classificationResults": [
{
"sensitiveTypeId": "cb353f78-2b72-4c3c-8827-92ebe4f69fdf",
"count": 4,
"confidenceLevel": 75
}
]
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var contentInfo = new ContentInfo
{
Format = ContentFormat.Default,
Identifier = null,
State = ContentState.Rest,
AdditionalData = new Dictionary<string, object>()
{
{"format@odata.type", "#microsoft.graph.contentFormat"},
{"state@odata.type", "#microsoft.graph.contentState"}
}
};
var classificationResults = new List<ClassificationResult>()
{
new ClassificationResult
{
SensitiveTypeId = "cb353f78-2b72-4c3c-8827-92ebe4f69fdf",
Count = 4,
ConfidenceLevel = 75
}
};
await graphClient.InformationProtection.Policy.Labels
.EvaluateClassificationResults(contentInfo,classificationResults)
.Request()
.Header("User-Agent","ContosoLOBApp/1.0")
.PostAsync();
const options = {
authProvider,
};
const client = Client.init(options);
const informationProtectionAction = {
contentInfo: {
'@odata.type': '#microsoft.graph.contentInfo',
'format@odata.type': '#microsoft.graph.contentFormat',
format: 'default',
identifier: null,
'state@odata.type': '#microsoft.graph.contentState',
state: 'rest'
},
classificationResults: [
{
sensitiveTypeId: 'cb353f78-2b72-4c3c-8827-92ebe4f69fdf',
count: 4,
confidenceLevel: 75
}
]
};
await client.api('/informationProtection/policy/labels/evaluateClassificationResults')
.version('beta')
.post(informationProtectionAction);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/informationProtection/policy/labels/evaluateClassificationResults"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"ContosoLOBApp/1.0" forHTTPHeaderField:@"User-Agent"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSMutableDictionary *payloadDictionary = [[NSMutableDictionary alloc] init];
MSGraphContentInfo *contentInfo = [[MSGraphContentInfo alloc] init];
[contentInfo setFormat: [MSGraphContentFormat default]];
[contentInfo setIdentifier: null];
[contentInfo setState: [MSGraphContentState rest]];
payloadDictionary[@"contentInfo"] = contentInfo;
NSMutableArray *classificationResultsList = [[NSMutableArray alloc] init];
MSGraphClassificationResult *classificationResults = [[MSGraphClassificationResult alloc] init];
[classificationResults setSensitiveTypeId:@"cb353f78-2b72-4c3c-8827-92ebe4f69fdf"];
[classificationResults setCount: 4];
[classificationResults setConfidenceLevel: 75];
[classificationResultsList addObject: classificationResults];
payloadDictionary[@"classificationResults"] = classificationResultsList;
NSData *data = [NSJSONSerialization dataWithJSONObject:payloadDictionary options:kNilOptions error:&error];
[urlRequest setHTTPBody:data];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
LinkedList<Option> requestOptions = new LinkedList<Option>();
requestOptions.add(new HeaderOption("User-Agent", "ContosoLOBApp/1.0"));
ContentInfo contentInfo = new ContentInfo();
contentInfo.additionalDataManager().put("format@odata.type", new JsonPrimitive("#microsoft.graph.contentFormat"));
contentInfo.format = ContentFormat.DEFAULT;
contentInfo.identifier = null;
contentInfo.additionalDataManager().put("state@odata.type", new JsonPrimitive("#microsoft.graph.contentState"));
contentInfo.state = ContentState.REST;
LinkedList<ClassificationResult> classificationResultsList = new LinkedList<ClassificationResult>();
ClassificationResult classificationResults = new ClassificationResult();
classificationResults.sensitiveTypeId = "cb353f78-2b72-4c3c-8827-92ebe4f69fdf";
classificationResults.count = 4;
classificationResults.confidenceLevel = 75;
classificationResultsList.add(classificationResults);
graphClient.informationProtection().policy().labels()
.evaluateClassificationResults(InformationProtectionLabelEvaluateClassificationResultsParameterSet
.newBuilder()
.withContentInfo(contentInfo)
.withClassificationResults(classificationResultsList)
.build())
.buildRequest( requestOptions )
.post();
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.New()
contentInfo := msgraphsdk.NewContentInfo()
requestBody.SetContentInfo(contentInfo)
format := "default"
contentInfo.SetFormat(&format)
contentInfo.SetIdentifier(nil)
state := "rest"
contentInfo.SetState(&state)
contentInfo.SetAdditionalData(map[string]interface{}{
"@odata.type": "#microsoft.graph.contentInfo",
"format@odata.type": "#microsoft.graph.contentFormat",
"state@odata.type": "#microsoft.graph.contentState",
}
requestBody.SetClassificationResults( []ClassificationResult {
msgraphsdk.NewClassificationResult(),
SetAdditionalData(map[string]interface{}{
"sensitiveTypeId": "cb353f78-2b72-4c3c-8827-92ebe4f69fdf",
"count": ,
"confidenceLevel": ,
}
}
headers := map[string]string{
"User-Agent": "ContosoLOBApp/1.0"
}
options := &msgraphsdk.EvaluateClassificationResultsRequestBuilderPostRequestConfiguration{
Headers: headers,
}
result, err := graphClient.InformationProtection().Policy().Labels().EvaluateClassificationResults().PostWithRequestConfigurationAndResponseHandler(requestBody, options, nil)
Import-Module Microsoft.Graph.Identity.SignIns
$params = @{
ContentInfo = @{
"@odata.type" = "#microsoft.graph.contentInfo"
"Format@odata.type" = "#microsoft.graph.contentFormat"
Format = "default"
Identifier = $null
"State@odata.type" = "#microsoft.graph.contentState"
State = "rest"
}
ClassificationResults = @(
@{
SensitiveTypeId = "cb353f78-2b72-4c3c-8827-92ebe4f69fdf"
Count = 4
ConfidenceLevel = 75
}
)
}
Test-MgInformationProtectionPolicyLabelClassificationResult -BodyParameter $params
响应
下面展示了示例响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(microsoft.graph.informationProtectionAction)",
"value": [
{
"@odata.type": "#microsoft.graph.applyLabelAction",
"responsibleSensitiveTypeIds": [
"cb353f78-2b72-4c3c-8827-92ebe4f69fdf"
],
"actionSource": "automatic",
"label": {
"id": "722a5300-ac39-4c9a-88e3-f54c46676417",
"name": "Top Secret",
"description": "",
"color": "#000000",
"sensitivity": 13,
"tooltip": "This information is Top Secret.",
"isActive": true
},
"actions": [
{
"@odata.type": "#microsoft.graph.protectByTemplateAction",
"templateId": "0e7fea72-7bba-4438-a070-95c292cd6f8c"
},
{
"@odata.type": "#microsoft.graph.metadataAction",
"metadataToRemove": [],
"metadataToAdd": [
{
"name": "MSIP_Label_722a5300-ac39-4c9a-88e3-f54c46676417_Enabled",
"value": "true"
},
{
"name": "MSIP_Label_722a5300-ac39-4c9a-88e3-f54c46676417_SetDate",
"value": "2019-10-03T21:50:20Z"
},
{
"name": "MSIP_Label_722a5300-ac39-4c9a-88e3-f54c46676417_Method",
"value": "Standard"
},
{
"name": "MSIP_Label_722a5300-ac39-4c9a-88e3-f54c46676417_Name",
"value": "Top Secret"
},
{
"name": "MSIP_Label_722a5300-ac39-4c9a-88e3-f54c46676417_SiteId",
"value": "cb46c030-1825-4e81-a295-151c039dbf02"
},
{
"name": "MSIP_Label_722a5300-ac39-4c9a-88e3-f54c46676417_ActionId",
"value": "76dc494e-6c59-43e6-88a1-0000edd58fca"
},
{
"name": "MSIP_Label_722a5300-ac39-4c9a-88e3-f54c46676417_ContentBits",
"value": "8"
}
]
}
]
}
]
}