Microsoft graph api 获取404“;“找不到资源”;呼叫/测试版/信息保护/策略/标签时

Microsoft graph api 获取404“;“找不到资源”;呼叫/测试版/信息保护/策略/标签时,microsoft-graph-api,microsoft-graph-files,microsoft-information-protection,microsoft-graph-security,Microsoft Graph Api,Microsoft Graph Files,Microsoft Information Protection,Microsoft Graph Security,根据需要,我们可以使用以下端点获取灵敏度标签: /me/信息保护/策略/标签(使用委派权限) /informationProtection/policy/labels(使用应用程序权限。应用程序应具有InformationProtectionPolicy.Read.All权限才能使用此端点) 以下C#代码使用应用程序权限,并在租户1上工作: static void Main(字符串[]args) { 字符串accessToken=getTokenImpl().Result; 使用(var

根据需要,我们可以使用以下端点获取灵敏度标签:

  • /me/信息保护/策略/标签(使用委派权限)

  • /informationProtection/policy/labels(使用应用程序权限。应用程序应具有InformationProtectionPolicy.Read.All权限才能使用此端点)

以下C#代码使用应用程序权限,并在租户1上工作:

static void Main(字符串[]args)
{
字符串accessToken=getTokenImpl().Result;
使用(var client=new HttpClient())
{
client.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(“承载者”,accessToken);
client.DefaultRequestHeaders.Add(“Accept”、“application/json”);
client.DefaultRequestHeaders.Add(“用户代理”、“PostmanRuntime/7.24.1”);
使用(var response=client.GetAsync($)https://graph.microsoft.com/beta/informationprotection/policy/labels(结果)
{
使用(var content=response.content)
{
字符串结果=content.ReadAsStringAsync().result;
if(响应。IsSuccessStatusCode)
{
控制台写入线(结果);
}
}
}
}
}
私有静态异步任务getTokenImpl()
{
字符串clientId=“…”;
字符串clientSecret=“…”;
字符串tenant=“{…}.onmicrosoft.com”;
string authority=string.Format(“https://login.microsoftonline.com/{0},租户);
var authContext=新的AuthenticationContext(授权);
var creds=新的ClientCredential(clientId,clientSecret);
var authResult=等待authContext.AcquireTokenAsync(“https://graph.microsoft.com/",信条),;
返回authResult.AccessToken;
}
但它在另一个租户2上不起作用-在那里它总是返回404“资源找不到”,并出现以下内部异常“用户找不到标签,策略为空”。以下是全部回复:

    {
        "error": {
            "code": "itemNotFound",
            "message": "The resource could not be found.",
            "innerError": {
                "code": "notFound",
                "message": "User not found to have labels, policy is empty",
                "target": "userId",
                "exception": null,
                "date": "2020-11-18T09:29:20",
                "request-id": "657ad51c-9cab-49f2-a242-50929cdc6950",
                "client-request-id": "657ad51c-9cab-49f2-a242-50929cdc6950"
            }
        }
    }
有趣的是,尝试在同一租户2上使用委派权限调用endpoint/me/informationProtection/policy/labels会产生相同的错误,但在租户1上也可以。有没有人面对过这个问题,或者知道为什么会发生这种情况?需要指出的是,在之前的tenant2上,我们为特定用户创建并发布了多个敏感标签-该用户既没有O365许可证,也没有Azure订阅。即,当您尝试登录到SPO/Azure并创建站点/组时,此用户的敏感标签根本没有显示。我们试图删除这些敏感标签及其策略,目标受众是该用户,但两个端点仍然返回错误

PS.AAD应用程序在租户2上正常-它具有InformationProtectionPolicy.Read。授予所有权限和管理员同意:

更新2020-11-25:两个租户的行为都发生了变化,我们方面没有任何变化:现在两个租户都有502个坏网关。MS现在是否在全球范围内推出此功能?下面是我们现在从/beta/me/informationProtection/policy/labels得到的回应:

{
   "error":{
      "code":"UnknownError",
      "message":"<html>\r\n<head><title>502 Bad Gateway</title></head>\r\n<body>\r\n<center><h1>502 Bad Gateway</h1></center>\r\n<hr><center>Microsoft-Azure-Application-Gateway/v2</center>\r\n</body>\r\n</html>\r\n",
      "innerError":{
         "date":"2020-11-25T12:59:51",
         "request-id":"93557ae1-b0d9-44a9-bbea-871f18e379ea",
         "client-request-id":"93557ae1-b0d9-44a9-bbea-871f18e379ea"
      }
   }
}
{
“错误”:{
“代码”:“未知错误”,
“消息”:“\r\n502坏网关\r\n\r\n502坏网关\r\n
Microsoft Azure应用程序网关/v2\r\n\r\n\r\n”, “内部错误”:{ “日期”:“2020-11-25T12:59:51”, “请求id”:“93557ae1-b0d9-44a9-bbea-871f18e379ea”, “客户请求id”:“93557ae1-b0d9-44a9-bbea-871f18e379ea” } } }

更新2020-12-07:它自己开始工作。也就是说,在复制此问题时,MS已在后台以某种方式为租户修复了此问题。

为什么要授予授权并尝试呼叫租户2、租户1?如果要访问多个租户,请使用应用程序权限。在上面的示例中,如果数据提供程序返回2xx或404,则会使用应用程序权限,但警告标题中不会显示该权限,因为这些代码预期会成功,或者在未找到数据时会分别显示。因此,我相信在您的场景中,您会看到后面的场景。敏感度标签将创建并发布在tenant2上。它们显示在标准页面上:在Sharepoint Online中创建新网站,在Azure portal>Active Directory中创建新的O365组是的,这是一个永久性错误。可能需要像您所说的那样与MS支持人员再次检查