Search code examples
jsonodatamicrosoft-graph-api

Getting all application extensions, and just applicaiton extensions for an object from MS Graph


Assume I know the extension names I am looking for I could get a users extensions like so:

GET https://graph.microsoft.com/v1.0/users/{{OBJECT_ID}}?$select=extension_{{APP_ID_WITHOUT_GUIDS}}_SomeId,extension_{{APP_ID_WITHOUT_GUIDS}}_SomeValue

Or I could get the attributes from his member groups like so:

GET https://graph.microsoft.com/v1.0/users/{{OBJECT_ID}}/memberOf?$select=extension_{{APP_ID_WITHOUT_GUIDS}}_SomeId,extension_{{APP_ID_WITHOUT_GUIDS}}_SomeValue

However, what If I wanted to see all extension the token had paticular access to. $select=extension_* does not work I get the following:

{
    "error": {
        "code": "BadRequest",
        "message": "Term 'extension_*' is not valid in a $select or $expand expression.",
        "innerError": {
            "request-id": "3b4e14d6-3bbc-429b-8c45-b0fea629f4a6",
            "date": "2018-04-06T13:35:40"
        }
    }
}

Is there syntax to make this possible?


Solution

  • No, this isn't possible with Microsoft Graph (using v1 Directory Schema Extensions). With Azure AD Graph API there is a function - getAvailableExtensionProperties - that should return all the available v1 directory schema extensions available in the tenant; this doesn't exist in Microsoft Graph. If you use Microsoft Graph schema extensions, you can query /schemaExtensions to find all public schema extension definitions available for use in any tenant (although your app also needs to have been granted access to the underlying extended object - like user).

    Hope this helps,