Azure active directory 为什么使用Graph API的LicenseSignmentState集合中缺少分配的许可证?

Azure active directory 为什么使用Graph API的LicenseSignmentState集合中缺少分配的许可证?,azure-active-directory,microsoft-graph-api,microsoft-graph-mail,Azure Active Directory,Microsoft Graph Api,Microsoft Graph Mail,my Azure AD中的用户有两个许可证分配,一个直接分配,一个通过组分配: 查询用户时,LicenseSignmentState集合中缺少一个许可证。属性assignedLicenses包含其他许可证 https://graph.microsoft.com/v1.0/users/[UPN]?$select=licenseAssignmentStates,assignedLicenses { "@odata.context": "https://gra

my Azure AD中的用户有两个许可证分配,一个直接分配,一个通过组分配:

查询用户时,LicenseSignmentState集合中缺少一个许可证。属性assignedLicenses包含其他许可证

https://graph.microsoft.com/v1.0/users/[UPN]?$select=licenseAssignmentStates,assignedLicenses

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(licenseAssignmentStates,assignedLicenses)/$entity",
    "licenseAssignmentStates": [
        {
            "skuId": "18181a46-0d4e-45cd-891e-60aabd171b4e",
            "disabledPlans": [],
            "assignedByGroup": "19f1820f-21d0-4d68-8c51-678a752168bc",
            "state": "Error",
            "error": "MutuallyExclusiveViolation"
        }
    ],
    "assignedLicenses": [
        {
            "disabledPlans": [
                "aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1",
                "8c7d2df8-86f0-4902-b2ed-a0458298f3b3",
                "57ff2da0-773e-42df-b2af-ffb7a2317929",
                "a23b959c-7ce8-4e57-9140-b90eb88a9e97",
                "e95bec33-7c88-4a70-8e19-b10bd9d0c014",
                "5dbe027f-2339-4123-9542-606e4d348a72"
            ],
            "skuId": "6fd2c87f-b296-42f0-b197-1e91e994b900"
        }
    ]
}
这是一个巨大的问题,因为如果LicenseSignmentState集合中不包含许可证,则不可能知道任何关于许可证分配状态的信息,也不可能知道该许可证是否已由组分配

在添加间接许可证分配之前,直接许可证分配是在LicenseSignmentState集合中返回的,因此我认为这与此无关

如何获取所有已分配许可证的LicenseSignmentState?我是做错了什么,还是图形API中有缺陷?如果是,什么是快速修复的最佳方法,我们的应用程序需要它


提前非常感谢

我重现了您面临的错误

步骤1:向用户添加许可证(Microsoft 365业务标准)

步骤2:将许可证(Microsoft 365 E3)添加到组

步骤3:将用户添加为此组的成员

然后,我获得了两个许可证,一个是直接许可证(活动许可证),另一个是通过组许可证(错误:服务计划冲突)。当我请求MS Graph API获取LicenseSignmentState和assignedLicenses时,我只找到了一个错误

步骤4:从组许可证中删除许可证(Microsoft 365 E3),API响应直接(活动)许可证

步骤5:将许可证(Dynamics 365计划)添加到组

我获得了以下两个许可证,它们都处于活动状态。API正确地响应它们

我再次将许可证(Microsoft 365 E3)添加到组中。API响应结果正确,其中包含一个或多个错误


因此,LicenseSignmentState集合中的许可证丢失似乎是一个BUG。您可以删除许可证,这是一个错误,您可以将其解决。

Microsoft已将其记录为一个错误,它正在等待解决:

非常感谢您确认我的问题!我希望微软的负责人能读到:-)。你好,@ManuelK。您可以将反馈发送到。如果我的回答有帮助,请接受我的回答。谢谢。我现在保留对这件事的判断。这显然是一个bug,所以从这个意义上说它并没有太大帮助,因为它并没有解决我的问题,即使您也确认了它。尽管添加有关如何复制的信息很有帮助。但也许有人提出了不同的解决方案,或者微软的员工修复了这个bug,这将是我的首选答案;-)@ManuelK目前的情况是,如果API正确响应一次,则不会发生错误。所以你可以先删除一个错误的许可证,然后添加它,你会得到你想要的结果。我的情况不是这样的。我刚开始只有直接许可证分配,并且它被正确地返回。添加有错误的第二个间接许可证后,仅返回该间接许可证。此外,在我的用例中,我不能只是到处更改客户的许可证分配。。。