Поделиться через


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

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

Механизм запросов Microsoft Graph использует хранилище индексов для выполнения запросов. Чтобы добавить поддержку дополнительных возможностей запросов для некоторых свойств, индексирование этих свойств теперь происходит в отдельном хранилище. Это отдельное индексирование позволяет идентификатору Microsoft Entra увеличить поддержку и повысить производительность запросов. Однако эти расширенные возможности запросов недоступны по умолчанию, но инициатор запроса также должен задать для заголовка 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 (directory), поддерживающие расширенные возможности запросов

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

Объект Связи
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 (directory)

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

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

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

    Условные обозначения

    • Работает по умолчанию. Не требует дополнительных параметров запроса. Оператор $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 NotSupported
    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 (directory)

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

    Условные обозначения

    • Работает по умолчанию. Не требует дополнительных параметров запроса. Оператор $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. По умолчанию
    [все остальные] [все остальные] NotSupported

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

    Подсчет объектов каталога поддерживается только с использованием расширенных параметров запросов. 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"
        }
      ]
    }