Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Microsoft Graph filter for onPremisesExtensionAttributes

I have a Microsoft Graph user with the following property:

"onPremisesExtensionAttributes": {
            "extensionAttribute1": "attr1",
            "extensionAttribute2": null,
            "extensionAttribute3": null,
            "extensionAttribute4": null,
             etc.
        },

I can't seem to find any documentation or examples on how to filter against this property. I've tried:

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'))

All of them result in a Bad Request, so clearly something is wrong.

"code": "BadRequest",
"message": "Invalid filter clause",

QUESTION: how do you format a filter against onPremisesExtensionAttributes or any other property that contains a list of named properties (e.g. extensionAttribute1...n)? For a list of strings (e.g. proxyAddresses) you can just do:

$filter=proxyAddresses/any(x:startswith(x,%27smtp:myemail%27))
like image 439
Michael Tucker Avatar asked Apr 11 '18 00:04

Michael Tucker


People also ask

Is Microsoft Graph deprecated?

Azure Active Directory (Azure AD) Graph is deprecated and will be retired at any time after June 30, 2023, without advance notice, as we announced in September, 2022.

What can you use Microsoft Graph for?

Microsoft Graph is the gateway to data and intelligence in Microsoft 365. It provides a unified programmability model that you can use to access the tremendous amount of data in Microsoft 365, Windows, and Enterprise Mobility + Security.

What is a graph endpoint?

A node of a graph of degree 1 (left figure; Harary 1994, p. 15), or, a point at the boundary of line segment or closed interval (right figure).


1 Answers

You can now filter on the onPremisesExtensionAttributes:

https://graph.microsoft.com/v1.0/users?$count=true&$filter=onPremisesExtensionAttributes/extensionAttribute1 eq 'attr1'

Two important points to note:

  1. You need to set the ConsistencyLevel HTTP request header to eventual. Otherwise you’ll get a 400 status code back with the following message Property 'extensionAttribute1' does not exist as a declared property or extension property.
  2. You need to include $count=true even if you don’t care about the count, otherwise you’ll get a 400 status code back with the following message Property 'extensionAttribute1' does not exist as a declared property or extension property.

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

like image 127
Gabriel Avatar answered Nov 26 '22 03:11

Gabriel