使用OData过滤guid(Microsoft Graph)

时间:2017-08-30 06:49:16

标签: odata azure-active-directory microsoft-graph

我正在尝试使用Microsoft Graph API获取具有特定许可证的用户列表。这可以使用Graph Explorer进行测试。

这是一个用户返回内容的裁剪示例:

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users/$entity",
    "id": "69615b5e-8b26-430c-ae89-4e626f5ba240",
    "accountEnabled": true,
    "assignedLicenses": [
        {
            "disabledPlans": [],
            "skuId": "f8a1db68-be16-40ed-86d5-cb42ce701560"
        },
        {
            "disabledPlans": [],
            "skuId": "6fd2c87f-b296-42f0-b197-1e91e994b900"
        }
    ]
}

我想获得所有拥有skuId“f8a1db68-be16-40ed-86d5-cb42ce701560”许可的用户的列表

这是我到目前为止所尝试的:

https://graph.microsoft.com/beta/users?$filter=AssignedLicenses/any(a:a/SkuId eq 'f8a1db68-be16-40ed-86d5-cb42ce701560')

给我错误:

  

检测到具有不兼容类型的二元运算符。找到操作数类型'Edm.Guid'和'Edm.String',用于运算符类'Equal'。

https://graph.microsoft.com/beta/users?$filter=AssignedLicenses/any(a:a/SkuId eq f8a1db68-be16-40ed-86d5-cb42ce701560)

给我错误:

  预期在'assignedLicenses / any(a:a / skuId eq f8a1db68-be16-40ed-86d5-cb42ce701560)的第42位预期

')'或','。

https://graph.microsoft.com/beta/users?$filter=AssignedLicenses/any(a:a/SkuId eq cast('f8a1db68-be16-40ed-86d5-cb42ce701560',Edm.Guid))

给我错误:

  

演员表中的子类型'Edm.Guid'不是实体类型。转换只能在实体类型上执行。

SO post表明我的第一次尝试可行,但事实并非如此。我做错了什么或者是否无法通过许可证分配进行过滤?

1 个答案:

答案 0 :(得分:0)

基于document,似乎此属性不支持过滤器,因为其他属性支持过滤器,文档将在accountEnabled user的说明文件中提及资源类型(参考this link)。

如果您需要此属性支持过滤器,可以从here提交反馈。