用于 onPremisesExtensionAttributes 的 Microsoft Graph 过滤器

Mic*_*ker 7 office365 azure-active-directory microsoft-graph-api

我有一个具有以下属性的 Microsoft Graph 用户:

"onPremisesExtensionAttributes": {
            "extensionAttribute1": "attr1",
            "extensionAttribute2": null,
            "extensionAttribute3": null,
            "extensionAttribute4": null,
             etc.
        },
Run Code Online (Sandbox Code Playgroud)

我似乎找不到关于如何过滤此属性的任何文档或示例。我试过了:

https://graph.microsoft.com/beta/users?$filter=extensionAttribute1 eq 'attr1'
https://graph.microsoft.com/beta/users?$filter=onPremisesExtensionAttributes/extensionAttribute1 eq 'attr1'
https://graph.microsoft.com/beta/users?$filter=onPremisesExtensionAttributes/any(x:startswith(x,'attr1'))
Run Code Online (Sandbox Code Playgroud)

所有这些都会导致错误的请求,所以很明显有问题。

"code": "BadRequest",
"message": "Invalid filter clause",
Run Code Online (Sandbox Code Playgroud)

问题:如何针对 onPremisesExtensionAttributes 或任何其他包含命名属性列表的属性(例如 extensionAttribute1...n)设置过滤器的格式?对于字符串列表(例如 proxyAddresses),您可以执行以下操作:

$filter=proxyAddresses/any(x:startswith(x,%27smtp:myemail%27))
Run Code Online (Sandbox Code Playgroud)

Gab*_*iel 11

您现在可以过滤onPremisesExtensionAttributes

\n
https://graph.microsoft.com/v1.0/users?$count=true&$filter=onPremisesExtensionAttributes/extensionAttribute1 eq \'attr1\'\n
Run Code Online (Sandbox Code Playgroud)\n

需要注意的两个要点:

\n
    \n
  1. 您需要将ConsistencyLevelHTTP 请求标头设置为eventual。否则,您\xe2\x80\x99将收到400状态代码,并显示以下消息Property \'extensionAttribute1\' does not exist as a declared property or extension property.
  2. \n
  3. $count=true即使您不关心计数,也需要包含该计数,否则您将收到400状态代码并显示以下消息Property \'extensionAttribute1\' does not exist as a declared property or extension property.
  4. \n
\n

来源:https://developer.microsoft.com/en-us/office/blogs/microsoft-graph-advanced-queries-for-directory-objects-are-now-generally-available/

\n