如何解决为什么使用Graph API的licenseAssignmentStates集合中缺少分配的许可证?
Azure AD中的一个用户有两个许可证分配,一个是直接许可证分配,另一个是通过组分配:
查询用户时,licenseAssignmentStates集合中缺少许可证之一。分配的属性Licenses包含其他许可证。
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"
}
]
}
这是一个很大的问题,因为如果licenseAssignmentStates集合中未包含许可证,就不可能知道有关许可证分配状态或是否已由组分配的任何信息。
在添加间接许可证分配之前,直接许可证分配已在licenseAssignmentStates集合中返回,因此我不认为这与之有关。
如何获取所有已分配许可证的licenseAssignmentState?我是在做错什么还是Graph API中的错误?如果是这样,那么快速修复它的最佳方法是什么,我们的应用程序需要它吗?
非常感谢您!
解决方法
我重现您遇到的错误。
第一步:向用户添加许可证(Microsoft 365商务标准)
第二步:将许可证(Microsoft 365 E3)添加到组
Step3:将用户添加为该组的成员
然后,我获得了2个许可证,一个是直接(活动)许可证,另一个是通过组的许可证(错误:服务计划冲突)。当我请求MS Graph API获取licenseAssignmentStates和AssignedLicenses时,我只是发现错误一。
步骤4:从组许可证中删除许可证(Microsoft 365 E3),API会响应直接(活动)许可证。
第5步:将许可证(Dynamics 365计划)添加到组中
我获得了2个许可证,两个许可证都处于活动状态。 API会正确响应它们。
我将许可证(Microsoft 365 E3)再次添加到组中。 API响应结果正确,其中包含一个错误和另一个错误。
因此,似乎BUG导致licenseAssignmentStates集合中的许可证丢失。您可以删除许可证,这是一个错误,无法解决。
,Microsoft 已将其记录为错误,并且正在等待解决:https://github.com/microsoftgraph/microsoft-graph-docs/issues/9636#issuecomment-754933971
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。