Расширенные возможности запросов к объектам Microsoft Entra ID

По мере того как Microsoft Entra продолжает предоставлять больше возможностей и улучшений в области стабильности, доступности и производительности, Microsoft Graph также продолжает развиваться и масштабироваться для эффективного доступа к данным. Один из способов заключается в растущей поддержке Microsoft Graph расширенных возможностей запросов к различным объектам Microsoft Entra ID, также называемым объектами каталогов, и их свойствам. Например, добавление не (not ), не равно (ne), и заканчивается (endsWith) операторами в параметре $filter запроса.

Механизм запросов Microsoft Graph использует хранилище индексов для выполнения запросов. Чтобы добавить поддержку дополнительных возможностей запросов для некоторых свойств, индексирование этих свойств теперь происходит в отдельном хранилище. Это отдельное индексирование позволяет Microsoft Entra ID увеличить поддержку и повысить производительность запросов. Однако эти расширенные возможности запросов недоступны по умолчанию, но инициатор запроса также должен задать для заголовка ConsistencyLevel значение eventualи, за исключением $search, использовать $count параметр запроса. Заголовок ConsistencyLevel и $count называются расширенными параметрами запроса.

Например, если нужно получить только учетные записи неактивных пользователей, можно выполнить любой из этих запросов, использующих параметр $filter запроса.

Вариант 1.$filter Используйте параметр запроса с оператором eq . Этот запрос работает по умолчанию, то есть запрос не требует дополнительных параметров запроса.

GET https://graph.microsoft.com/v1.0/users?$filter=accountEnabled eq false

Вариант 2.$filter Используйте параметр запроса с оператором ne . Этот запрос не поддерживается по умолчанию, так как ne оператор поддерживается только в расширенных запросах. Поэтому необходимо добавить заголовок eventualConsistencyLevel в значение и использовать $count=true строку запроса.

GET https://graph.microsoft.com/v1.0/users?$filter=accountEnabled ne true&$count=true
ConsistencyLevel: eventual

Microsoft Entra ID объектов (каталогов), поддерживающих расширенные возможности запросов

Эти расширенные возможности запросов поддерживаются только для объектов каталога и их связей, включая следующие часто используемые объекты:

Объект Связи
administrativeUnit
  • члены
  • application
  • владельцы
  • appRoleAssignment -
    device
  • memberOf
  • transitiveMemberOf
  • registeredUsers
  • registeredOwners
  • group
  • члены
  • transitiveMembers
  • memberOf
  • transitiveMemberOf
  • владельцы
  • appRoleAssignments
  • oAuth2PermissionGrant (предоставление делегированных разрешений) -
    orgContact
  • memberOf
  • transitiveMemberOf
  • servicePrincipal
  • memberOf
  • transitiveMemberOf
  • appRoleAssignments
  • appRoleAssignmentsTo
  • oAuth2PermissionGrant
  • user
  • memberOf
  • transitiveMemberOf
  • ownedObjects
  • registeredDevices
  • ownedDevices
  • transitiveManagers
  • directReports
  • transitiveReports
  • appRoleAssignments
  • oAuth2PermissionGrant
  • Сценарии запросов, требующие расширенных возможностей запросов

    В следующей таблице приведены сценарии запросов для объектов каталога, поддерживаемые только в расширенных запросах:

    Описание Пример
    Использование $count в качестве сегмента URL-адреса GET~/groups/$count
    Использование $count в качестве параметра строки запроса GET~/servicePrincipals?$count=true
    Использование $count в $filter выражении GET~/users?$filter=assignedLicenses/$count eq 0&$count=true
    Использование $search GET~/applications?$search="displayName:Browser"
    Использование $orderby для выбранных свойств GET~/applications?$orderby=displayName&$count=true
    Использование $filter с оператором endsWith GET~/users?$count=true&$filter=endsWith(mail,'@outlook.com')
    Использование $filter и $orderby в одном и том же запросе GET../applications?$orderby=displayName&$filter=startsWith( displayName, 'Box')&$count=true
    Использование $filter с операторами startsWith для определенных свойств GET~/users?$filter=startsWith(mobilePhone, '25478') OR startsWith(mobilePhone, '25473')&$count=true
    Использование $filter с операторами ne и not GET~/users?$filter=companyName ne null and NOT(companyName eq 'Microsoft')&$count=true
    Использование $filter с операторами not и startsWith GET~/users?$filter=NOT startsWith(displayName, 'Conf')&$count=true
    Использование $filter в коллекции с оператором endsWith GET~/users?$count=true&$filter=proxyAddresses/any (p:endsWith(p, 'contoso.com'))&$select=id,displayName,proxyaddresses
    Использование трансляции OData с транзитивным списком участников GET~/me/transitiveMemberOf/microsoft.graph.group?$count=true

    Примечание.

    • Совместное использование $filter и $orderby поддерживается только в расширенных запросах.
    • $expand в настоящее время не поддерживается в расширенных запросах.
    • Расширенные возможности запросов в настоящее время недоступны для клиентов Azure AD B2C.
    • Чтобы использовать расширенные возможности запросов в пакетных запросах, укажите заголовок ConsistencyLevel в теле запроса JSON POST.

    Поддержка фильтрации по свойствам объектов Microsoft Entra ID (каталогов)

    Свойства объектов каталога ведут себя по-разному в отношении поддержки параметров запросов. Ниже приведены распространенные сценарии для объектов каталога:

    • Запросы, поддерживаемые по умолчанию, также будут работать с расширенными параметрами запроса, но ответ в конечном итоге будет согласован.
    • Оператор in поддерживается по умолчанию, когда eq оператор поддерживается по умолчанию.
    • Оператор endsWith поддерживается только с расширенными параметрами запроса по свойствам mail, otherMails, userPrincipalName и proxyAddresses .
    • Получение пустых коллекций (/$count eq 0, /$count ne 0) и коллекций с менее чем одним объектом (/$count eq 1, /$count ne 1) поддерживается только с расширенными параметрами запроса.
    • Операторы not и ne отрицания поддерживаются только с расширенными параметрами запроса.

    В следующих таблицах представлена поддержка $filter операторов по свойствам объектов каталога и указывается, где запросы поддерживаются с помощью расширенных возможностей запросов.

    Legend

    • Работает по умолчанию. Не требует дополнительных параметров запроса. Оператор $filter работает по умолчанию для этого свойства.
    • Требуются дополнительные параметры запроса. Оператор $filterтребуетдополнительных параметров запроса, которые:
      • Заголовок ConsistencyLevel=eventual
      • Строка запроса $count=true
    • Не поддерживается. Оператор $filter не поддерживается для этого свойства. Отправьте свой отзыв, чтобы запросить поддержку этого свойства $filter для сценариев.
    • Пустые ячейки указывают, что запрос недопустим для этого свойства.
    • Столбец значение null указывает, что свойство является недействительным и фильтруемым с помощью null.
    • Свойства, которые не перечислены здесь, не поддерживаются $filter вообще.

    Свойства административных единиц

    Свойство eq startsWith eq NULL
    description Дополнительные Дополнительно Дополнительные
    displayName По умолчанию По умолчанию Дополнительно
    isMemberManagementRestricted По умолчанию NotSupported
    membershipRule По умолчанию По умолчанию NotSupported
    membershipRuleProcessingState По умолчанию NotSupported
    scopedRoleMembers/any(s:s/id) По умолчанию

    Свойства приложения

    Свойство eq startsWith ge/le eq NULL
    appId По умолчанию
    createdDateTime По умолчанию По умолчанию Дополнительно
    createdOnBehalfOf/id По умолчанию
    description Дополнительные Дополнительно Дополнительные
    disabledByMicrosoftStatus По умолчанию NotSupported
    displayName По умолчанию По умолчанию Дополнительно
    federatedIdentityCredentials/any(f:f/issuer) Дополнительно Дополнительно NotSupported
    federatedIdentityCredentials/any(f:f/name) Дополнительно Дополнительно NotSupported
    federatedIdentityCredentials/any(f:f/subject) Дополнительно Дополнительно NotSupported
    identifierUris/any(p:p) По умолчанию По умолчанию
    info/logoUrl NotSupported NotSupported Дополнительно
    info/termsOfServiceUrl Дополнительно Дополнительно NotSupported
    notes Дополнительно Дополнительно Дополнительно
    publicClient/redirectUris/any(p:p) Дополнительно Дополнительно
    publisherDomain По умолчанию По умолчанию NotSupported
    requiredResourceAccess/any(r:r/resourceAppId) Дополнительно
    serviceManagementReference Дополнительно Дополнительно Дополнительно
    signInAudience По умолчанию NotSupported
    spa/redirectUris/any(p:p) Дополнительно Дополнительно
    tags/any(p:p) По умолчанию По умолчанию
    uniqueName По умолчанию По умолчанию NotSupported
    verifiedPublisher/displayName Дополнительно Дополнительно Дополнительно
    web/homePageUrl Дополнительно Дополнительно Дополнительно
    web/redirectUris/any(p:p) Дополнительно Дополнительно

    Следующие свойства сущности приложения поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    extensionProperties/$count Дополнительно NotSupported
    federatedIdentityCredentials/$count Дополнительно NotSupported

    Свойства контракта

    Свойство eq startsWith
    customerId По умолчанию
    defaultDomainName По умолчанию По умолчанию
    displayName По умолчанию По умолчанию

    Свойства устройства

    Свойство eq startsWith ge/le eq NULL
    accountEnabled По умолчанию NotSupported
    alternativeSecurityIds/any(a:a/identityProvider) Дополнительно Дополнительно NotSupported
    alternativeSecurityIds/any(a:a/type) По умолчанию Дополнительно NotSupported
    approximateLastSignInDateTime По умолчанию По умолчанию Дополнительно
    deviceCategory Дополнительно Дополнительно Дополнительные
    deviceId По умолчанию
    deviceOwnership Дополнительно Дополнительные
    displayName По умолчанию По умолчанию Дополнительно
    enrollmentProfileName Дополнительно Дополнительно Дополнительно
    extensionAttributes/extensionAttribute1-15 Дополнительно Дополнительно Дополнительно
    hostnames/any(p:p) По умолчанию По умолчанию
    isCompliant По умолчанию NotSupported
    isManaged По умолчанию NotSupported
    isRooted Дополнительно Дополнительно
    managementType Дополнительно Дополнительно
    manufacturer Дополнительно Дополнительно Дополнительные
    mdmAppId По умолчанию
    model Дополнительно Дополнительно Дополнительные
    onPremisesLastSyncDateTime По умолчанию По умолчанию NotSupported
    onPremisesSecurityIdentifier По умолчанию Дополнительные
    onPremisesSyncEnabled По умолчанию Дополнительно
    operatingSystem По умолчанию По умолчанию Дополнительные
    operatingSystemVersion По умолчанию По умолчанию Дополнительно
    physicalIds/any(p:p) По умолчанию
    profileType По умолчанию NotSupported
    registrationDateTime Дополнительно Дополнительно Дополнительно
    trustType По умолчанию NotSupported

    Следующие свойства сущности устройства поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    physicalIds/$count Дополнительно NotSupported
    systemLabels/$count Дополнительно NotSupported

    Свойства роли каталога

    Свойство eq startsWith eq NULL
    description Дополнительные Дополнительно Дополнительные
    displayName По умолчанию Дополнительно Дополнительные
    roleTemplateId По умолчанию NotSupported

    Свойства группы

    Свойство eq startsWith ge/le eq NULL
    appRoleAssignments/any(a:a/id) По умолчанию
    assignedLicenses/any(a:a/skuId) По умолчанию
    classification По умолчанию По умолчанию NotSupported
    createdByAppId По умолчанию
    createdOnBehalfOf/id По умолчанию
    description Дополнительные Дополнительно Дополнительные
    displayName По умолчанию По умолчанию Дополнительные
    expirationDateTime Дополнительные Дополнительно NotSupported
    hasMembersWithLicenseErrors По умолчанию По умолчанию
    infoCatalogs/any(p:p) По умолчанию По умолчанию
    isAssignableToRole По умолчанию NotSupported
    mail; По умолчанию По умолчанию Дополнительные
    mailEnabled По умолчанию NotSupported
    mailNickname По умолчанию По умолчанию Дополнительные
    membershipRule По умолчанию По умолчанию NotSupported
    membershipRuleProcessingState По умолчанию NotSupported
    onPremisesLastSyncDateTime По умолчанию По умолчанию NotSupported
    onPremisesProvisioningErrors/any(o:o/category) По умолчанию NotSupported
    onPremisesProvisioningErrors/any(o:o/propertyCausingError) По умолчанию NotSupported
    onPremisesSamAccountName Дополнительные Дополнительно NotSupported
    onPremisesSecurityIdentifier По умолчанию Дополнительные
    onPremisesSyncEnabled По умолчанию Дополнительные
    preferredLanguage; Дополнительные Дополнительно Дополнительно
    proxyAddresses/any(p:p) По умолчанию По умолчанию
    renewedDateTime По умолчанию По умолчанию NotSupported
    resourceBehaviorOptions/any(p:p) По умолчанию
    resourceProvisioningOptions/any(p:p) По умолчанию
    securityEnabled По умолчанию NotSupported
    settings/any(s:s/displayName) По умолчанию По умолчанию NotSupported
    settings/any(s:s/id) По умолчанию
    uniqueName По умолчанию По умолчанию NotSupported

    Следующие свойства сущности группы поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    assignedLicenses/$count Дополнительно NotSupported
    onPremisesProvisioningErrors/$count Дополнительно NotSupported
    proxyAddresses/$count Дополнительно NotSupported

    Свойства контактов организации

    Свойство eq startsWith ge/le eq NULL
    CompanyName Дополнительные Дополнительно Дополнительные
    department По умолчанию По умолчанию Дополнительные
    displayName По умолчанию По умолчанию Дополнительные
    givenName; По умолчанию По умолчанию Дополнительные
    jobTitle; По умолчанию По умолчанию Дополнительные
    mail; По умолчанию По умолчанию Дополнительные
    mailNickname По умолчанию По умолчанию Дополнительно
    manager/id По умолчанию
    onPremisesLastSyncDateTime По умолчанию По умолчанию NotSupported
    onPremisesProvisioningErrors/any(o:o/category) По умолчанию NotSupported
    onPremisesProvisioningErrors/any(o:o/propertyCausingError) По умолчанию NotSupported
    onPremisesSyncEnabled По умолчанию Дополнительно
    proxyAddresses/any(p:p) По умолчанию По умолчанию
    surname; По умолчанию По умолчанию Дополнительно

    Следующие свойства сущности orgContact поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    onPremisesProvisioningErrors/$count Дополнительно NotSupported
    proxyAddresses/$count Дополнительно NotSupported

    Свойства субъекта-службы

    Свойство eq startsWith ge/le eq NULL
    accountEnabled По умолчанию NotSupported
    alternativeNames/any(p:p) По умолчанию По умолчанию
    appId По умолчанию
    appOwnerOrganizationId Дополнительные
    appRoleAssignedTo/any(a:a/id) По умолчанию
    appRoleAssignmentRequired Дополнительные NotSupported
    appRoleAssignments/any(a:a/id) По умолчанию
    applicationTemplateId По умолчанию
    createdObjects/any(c:c/id) Дополнительно
    delegatedPermissionClassifications/any(d:d/id) По умолчанию
    description Дополнительные Дополнительно Дополнительные
    displayName По умолчанию По умолчанию Дополнительно
    federatedIdentityCredentials/any(f:f/issuer) Дополнительно Дополнительно NotSupported
    federatedIdentityCredentials/any(f:f/name) Дополнительно Дополнительно NotSupported
    federatedIdentityCredentials/any(f:f/subject) Дополнительно Дополнительно NotSupported
    homepage Дополнительно Дополнительно Дополнительно
    info/logoUrl NotSupported NotSupported Дополнительно
    info/termsOfServiceUrl Дополнительно Дополнительно NotSupported
    notes Дополнительно Дополнительно Дополнительно
    oauth2PermissionGrants/any(o:o/id) По умолчанию
    preferredSingleSignOnMode По умолчанию NotSupported
    preferredTokenSigningKeyEndDateTime По умолчанию По умолчанию NotSupported
    publisherName По умолчанию По умолчанию NotSupported
    remoteDesktopSecurityConfiguration/id По умолчанию
    remoteDesktopSecurityConfiguration/targetDeviceGroups/any(t:t/displayName) По умолчанию По умолчанию NotSupported
    remoteDesktopSecurityConfiguration/targetDeviceGroups/any(t:t/id) По умолчанию
    servicePrincipalNames/any(p:p) По умолчанию По умолчанию
    servicePrincipalType По умолчанию NotSupported
    tags/any(p:p) По умолчанию По умолчанию
    verifiedPublisher/displayName Дополнительно Дополнительно Дополнительно

    Следующие свойства сущности servicePrincipal поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    federatedIdentityCredentials/$count Дополнительно NotSupported
    ownedObjects/$count Дополнительно Дополнительно

    Свойства пользователя

    Свойство eq startsWith ge/le eq NULL
    accountEnabled По умолчанию NotSupported
    ageGroup По умолчанию NotSupported
    appRoleAssignments/any(a:a/id) По умолчанию
    assignedLicenses/any(a:a/skuId) По умолчанию
    assignedPlans/any(a:a/capabilityStatus) Дополнительно NotSupported
    assignedPlans/any(a:a/service) Дополнительно Дополнительно NotSupported
    assignedPlans/any(a:a/servicePlanId) Дополнительно
    authorizationInfo/certificateUserIds/any(p:p) Дополнительно
    businessPhones/any(p:p) Дополнительно Дополнительные
    city По умолчанию По умолчанию Дополнительно
    cloudRealtimeCommunicationInfo/isSipEnabled По умолчанию NotSupported
    CompanyName Дополнительные Дополнительно Дополнительные
    consentProvidedForMinor По умолчанию NotSupported
    country По умолчанию По умолчанию Дополнительные
    createdDateTime По умолчанию По умолчанию Дополнительно
    createdObjects/any(c:c/id) Дополнительные
    creationType По умолчанию NotSupported
    department По умолчанию По умолчанию Дополнительные
    displayName По умолчанию По умолчанию Дополнительные
    employeeHireDate Дополнительные Дополнительно NotSupported
    employeeId По умолчанию Дополнительно
    employeeOrgData/costCenter Дополнительно Дополнительно NotSupported
    employeeOrgData/division Дополнительно Дополнительно NotSupported
    employeeType Дополнительные NotSupported
    externalUserState По умолчанию NotSupported
    faxNumber Дополнительные Дополнительно Дополнительные
    givenName; По умолчанию По умолчанию Дополнительно
    identities/any(i:i/issuer) По умолчанию NotSupported По умолчанию
    imAddresses/any(p:p) По умолчанию По умолчанию
    infoCatalogs/any(p:p) По умолчанию По умолчанию
    isLicenseReconciliationNeeded По умолчанию NotSupported
    isResourceAccount По умолчанию NotSupported
    jobTitle; По умолчанию По умолчанию Дополнительно
    licenseDetails/any(l:l/id) По умолчанию
    mail; По умолчанию По умолчанию Дополнительные
    mailNickname По умолчанию По умолчанию Дополнительно
    manager/id По умолчанию
    mobilePhone; Дополнительные Дополнительно Дополнительно
    oauth2PermissionGrants/any(o:o/id) По умолчанию
    officeLocation; Дополнительные Дополнительно Дополнительно
    onPremisesDistinguishedName Дополнительно Дополнительно Дополнительно
    onPremisesExtensionAttributes/extensionAttribute1-15 Дополнительно Дополнительно Дополнительные
    onPremisesImmutableId По умолчанию
    onPremisesLastSyncDateTime По умолчанию По умолчанию NotSupported
    onPremisesProvisioningErrors/any(o:o/category) По умолчанию NotSupported
    onPremisesProvisioningErrors/any(o:o/propertyCausingError) По умолчанию NotSupported
    onPremisesSamAccountName Дополнительные Дополнительно NotSupported
    onPremisesSecurityIdentifier По умолчанию Дополнительно
    onPremisesSipInfo/isSipEnabled Дополнительно NotSupported
    onPremisesSyncEnabled По умолчанию Дополнительно
    otherMails/any(p:p) По умолчанию По умолчанию
    passwordPolicies NotSupported NotSupported Дополнительно
    passwordProfile/forceChangePasswordNextSignIn Дополнительно Дополнительно
    passwordProfile/forceChangePasswordNextSignInWithMfa Дополнительно Дополнительные
    postalCode Дополнительные Дополнительно Дополнительные
    preferredLanguage; Дополнительные Дополнительно Дополнительно
    provisionedPlans/any(p:p/provisioningStatus) Дополнительно NotSupported
    provisionedPlans/any(p:p/service) Дополнительно Дополнительно NotSupported
    proxyAddresses/any(p:p) По умолчанию По умолчанию
    scopedRoleMemberOf/any(s:s/id) По умолчанию
    showInAddressList Дополнительные NotSupported
    state По умолчанию Дополнительные
    streetAddress Дополнительные Дополнительно Дополнительные
    surname; По умолчанию По умолчанию Дополнительные
    usageLocation По умолчанию По умолчанию Дополнительные
    userPrincipalName По умолчанию По умолчанию NotSupported
    userType По умолчанию Дополнительно

    Следующие свойства сущности пользователя поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    assignedLicenses/$count Дополнительно NotSupported
    onPremisesProvisioningErrors/$count Дополнительно NotSupported
    otherMails/$count Дополнительно NotSupported
    ownedObjects/$count Дополнительно Дополнительно
    proxyAddresses/$count Дополнительно NotSupported

    В следующей таблице показана $filter поддержка другими свойствами расширения объекта user .

    Тип расширения eq startsWith eq NULL
    Расширения схемы Дополнительно Дополнительно Дополнительно
    Открытые расширения NotSupported NotSupported NotSupported
    Расширения каталогов По умолчанию Дополнительно Дополнительно

    Поддержка сортировки по свойствам объектов Microsoft Entra ID (каталог)

    В следующей таблице представлена поддержка $orderby по свойствам объектов каталога и указано, где сортировка поддерживается с помощью расширенных возможностей запросов.

    Legend

    • Работает по умолчанию. Не требует дополнительных параметров запроса. Оператор $orderby работает по умолчанию для этого свойства.
    • Требуются дополнительные параметры запроса. Оператор $orderbyтребуетдополнительных параметров запроса, которые:
      • Заголовок ConsistencyLevel=eventual
      • Строка запроса $count=true
    • $filter Для использования и $orderby в одном запросе для объектов каталога всегда требуются дополнительные параметры запроса. Дополнительные сведения см. в статье Сценарии запросов, требующие расширенных возможностей запросов.
    Объект каталога Имя свойства Поддерживает $orderby
    administrativeUnit createdDateTime Дополнительно
    administrativeUnit deletedDateTime Дополнительно
    administrativeUnit displayName Дополнительно
    приложение createdDateTime Дополнительно
    приложение deletedDateTime Дополнительно
    приложение displayName Дополнительно
    orgContact createdDateTime Дополнительно
    orgContact displayName Дополнительно
    device; approximateLastSignInDateTime Дополнительно
    device; createdDateTime Дополнительно
    device; deletedDateTime Дополнительно
    device; displayName Дополнительно
    group deletedDateTime Дополнительно
    group displayName По умолчанию
    servicePrincipal createdDateTime Дополнительно
    servicePrincipal deletedDateTime Дополнительно
    servicePrincipal displayName Дополнительно
    пользователь createdDateTime Дополнительно
    пользователь deletedDateTime Дополнительно
    пользователь displayName По умолчанию
    пользователь userPrincipalName. По умолчанию

    Обработка ошибок расширенных запросов к объектам каталога

    Подсчет объектов каталога поддерживается только с использованием расширенных параметров запросов. ConsistencyLevel=eventual Если заголовок не указан, запрос возвращает ошибку при $count использовании сегмента URL-адреса или автоматически игнорирует $count параметр запроса (?$count=true), если он используется.

    GET https://graph.microsoft.com/v1.0/users/$count
    
    {
        "error": {
            "code": "Request_BadRequest",
            "message": "$count is not currently supported.",
            "innerError": {
                "date": "2021-05-18T19:03:10",
                "request-id": "d9bbd4d8-bb2d-44e6-99a1-71a9516da744",
                "client-request-id": "539da3bd-942f-25db-636b-27f6f6e8eae4"
            }
        }
    }
    

    Для объектов каталога $search поддерживается только в расширенных запросах. Если заголовок ConsistencyLevel не указан, запрос возвращает ошибку.

    GET https://graph.microsoft.com/v1.0/applications?$search="displayName:Browser"
    
    {
        "error": {
            "code": "Request_UnsupportedQuery",
            "message": "Request with $search query parameter only works through MSGraph with a special request header: 'ConsistencyLevel: eventual'",
            "innerError": {
                "date": "2021-05-27T14:26:47",
                "request-id": "9b600954-ba11-4899-8ce9-6abad341f299",
                "client-request-id": "7964ef27-13a3-6ca4-ed7b-73c271110867"
            }
        }
    }
    

    Если свойство или параметр запроса в URL-адресе поддерживаются только в расширенных запросах, но отсутствует заголовок ConsistencyLevel или строка запроса $count=true, то запрос возвращает ошибку.

    GET https://graph.microsoft.com/beta/users?$filter=endsWith(userPrincipalName,'%23EXT%23@contoso.com')
    
    {
        "error": {
            "code": "Request_UnsupportedQuery",
            "message": "Operator 'endsWith' is not supported because the required parameters might be missing. Try adding $count=true query parameter and ConsistencyLevel:eventual header. Refer to https://aka.ms/graph-docs/advanced-queries for more information",
            "innerError": {
                "date": "2023-07-14T08:43:39",
                "request-id": "b3731da7-5c46-4c37-a8e5-b190124d2531",
                "client-request-id": "a1556ddf-4794-929d-0105-b753a78b4c68"
            }
        }
    }
    

    Если свойство не было проиндексировано для поддержки параметра запроса, даже если указаны дополнительные параметры запроса, запрос возвращает ошибку.

    GET https://graph.microsoft.com/beta/groups?$filter=createdDateTime ge 2021-11-01&$count=true
    ConsistencyLevel: eventual
    
    {
        "error": {
            "code": "Request_UnsupportedQuery",
            "message": "Unsupported or invalid query filter clause specified for property 'createdDateTime' of resource 'Group'.",
            "innerError": {
                "date": "2023-07-14T08:42:44",
                "request-id": "b6a5f998-94c8-430d-846d-2eaae3031492",
                "client-request-id": "2be83e05-649e-2508-bcd9-62e666168fc8"
            }
        }
    }
    

    Однако запрос, включающий параметры запроса, может завершиться ошибкой автоматически. Например, для неподдерживаемых параметров запроса и для неподдерживаемых сочетаний параметров запроса. В таких случаях проверьте данные, возвращаемые запросом, чтобы определить, оказали ли указанные параметры запроса желаемое действие. В следующем примере параметр @odata.count отсутствует, даже если запрос успешно выполняется.

    GET https://graph.microsoft.com/v1.0/users?$count=true
    
    HTTP/1.1 200 OK
    Content-type: application/json
    
    {
      "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users",
      "value":[
        {
          "displayName":"Oscar Ward",
          "mail":"oscarward@contoso.com",
          "userPrincipalName":"oscarward@contoso.com"
        }
      ]
    }