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


Поддерживаемые параметры запросов, фильтров и операций разбиения на страницы | Общие понятия API Graph

В этой статье представлены параметры запросов, фильтры и операции разбиения на страницы, которые можно использовать при работе с API Graph Azure Active Directory (AD). Последний раздел содержит несколько примеров распространенных запросов, которые можно выполнять с помощью API Graph Azure AD.

Важно!

Для доступа к ресурсам Azure Active Directory мы настоятельно рекомендуем использовать Microsoft Graph вместо API Azure AD Graph.Теперь наши усилия сфокусированы на разработке Microsoft Graph; дальнейшее продвижение API Azure AD Graph мы не планируем.Есть очень мало сценариев, в которых по-прежнему можно использовать API Azure AD Graph. Дополнительные сведения об этом см. в записи блога в центре разработчиков Office, где сравниваются решения Microsoft Graph и Azure AD Graph.

Адресация

Все приведенные ниже запросы обращаются к клиенту по имени домена. Вы можете заменить contoso.com на одно из зарегистрированных доменных имен вашего клиента с идентификатором GUID или с псевдонимом MyOrganization вашего клиента (для делегированного доступа). В некоторых случаях можно использовать псевдоним me. Сведения о других способах обращения к клиенту см. в статье Общие сведения об операциях.

Поддерживаемые параметры запросов

Graph поддерживает следующие параметры запросов: $filter, $orderby, $expand, $top и $format. В настоящее время не поддерживаются следующие параметры запросов: $count, $inlinecount и $skip.

$filter

К запросам, в которых содержится фильтр, применяются следующие ограничения общего характера.

  • Выражения $filter нельзя объединять с выражениями $orderby.

  • Фильтрация не поддерживается для запросов к объектам каталога DirectoryRole и SubscribedSku.

  • Не все свойства поддерживаемых объектов каталога можно использовать в качестве критерия фильтра. Дополнительные сведения о свойствах, которые можно использовать в фильтрах, см. в разделах User, Group и Contact.

На выражения фильтров налагаются следующие ограничения.

  • Логические операторы: поддерживаются операторы and и or. Пример: https://graph.windows.net/contoso.com/users?api-version=2013-11-08&$filter=accountEnabled eq true and (userPrincipalName eq 'jonlawr@contoso.com' or mail eq 'jonlawr@contoso.com')

  • Операторы сравнения: поддерживаются операторы eq (равно), ge (больше или равно) и le (меньше или равно).

  • Поддерживается инструкция startswith. Пример: https://graph.windows.net/contoso.com/users?api-version=2013-11-08&$filter=startswith(displayName,'Mary')

  • Поддерживается any при запросе свойств с несколькими значениями. Пример: https://graph.windows.net/contoso.com/users?api-version=2013-11-08&$filter=userPrincipalName eq 'Mary@Contoso.com' or proxyAddresses/any(c:c eq 'smtp:Mary@Contoso.com')

  • Арифметические операторы: не поддерживаются.

  • Функции: не поддерживаются.

  • Значения null в качестве операнда в выражениях фильтра не поддерживаются. Например, нельзя указать значение null для фильтрации незаданных свойств.

$orderby

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

Запрос Описание
https://graph.windows.net/contoso.com/users?$orderby=displayName&api-version=1.6 Возвращает список пользователей, упорядоченных по отображаемому имени.
https://graph.windows.net/contoso.com/users?$orderby=displayName&$top=50&api-version=1.6 Возвращает список первых 50 пользователей, упорядоченных по отображаемому имени.

На выражения $orderby налагаются следующие ограничения.

  • В настоящее время поддерживаются два порядка сортировки: DisplayName для объектов User и Group и UserPrincipalName для объектов User. По умолчанию для пользователей применяется порядок сортировки UserPrincipalName.

  • Выражения $orderby нельзя объединять с выражениями $filter.

$expand

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

Запрос Описание
https://graph.windows.net/contoso.com/groups/1747ad35-dd4c-4115-8604-09b54f89277d?$expand=members&api-version=1.6 Возвращает группу и всех ее членов.
https://graph.windows.net/contoso.com/users/derek@contoso.com?$expand=directReports&api-version=1.6 Возвращает пользователя и его подчиненных.
https://graph.windows.net/contoso.com/users/adam@contoso.com?$expand=manager&api-version=1.6 Возвращает пользователя и его руководителя.

На выражения $expand налагаются следующие ограничения.

  • В запросе может возвращаться не более 20 объектов.

$top

$top не поддерживается для запросов к объектам каталога DirectoryRole или SubscribedSku.

Поддержка разбиения на страницы

В Graph можно переходить по страницам вперед и назад. Ответ, содержащий разбитые по страницам результаты, будет включать токен пропуска (odata.nextLink), позволяющий получить следующую страницу результатов. Этот токен пропуска можно объединять с аргументом запроса previous-page=true для перехода по страницам в обратном направлении.

Следующий пример запроса демонстрирует переход по страницам вперед.

Запрос Описание
https://graph.windows.net/contoso.com/users?$top=5&api-version=2013-11-08&$skiptoken=X'4453707402.....0000' В запрос включен параметр $skiptoken из предыдущего ответа, который позволяет перейти на следующую страницу результатов.

Следующий пример запроса демонстрирует переход по страницам назад.

Запрос Описание
https://graph.windows.net/contoso.com/users?$top=5&api-version=2013-11-08&$skiptoken=X'4453707.....00000'&previous-page=true В запрос включен параметр $skiptoken из предыдущего ответа. Если он объединяется с параметром &previous-page=true, то будет извлекаться предыдущая страница результатов.

Далее показывается процесс, состоящий из запросов и ответов, для перехода по страницам назад и вперед:

  1. Выполняется запрос для получения списка первых 10 пользователей из 15. Ответ содержит токен пропуска, обозначающий конец страницы из 10 пользователей.
  2. Чтобы получить последние 5 пользователей, выполняется другой запрос, содержащий токен пропуска из предыдущего запроса.
  3. Чтобы вернуться на страницу назад, выполняется запрос с использованием токена пропуска, полученного в шаге 1, и параметра &previous-page=true.
  4. Ответ содержит предыдущую (первую) страницу из 10 пользователей. В другом сценарии, в котором остается больше страниц, необходимо получить новый токен пропуска. Этот новый токен пропуска можно добавить в запрос вместе с параметром &previous-page=true, чтобы снова получить предыдущую страницу.

На запросы с переходами по страницам налагаются следующие ограничения.

  • Размер страницы по умолчанию равен 100. Максимальный размер страницы равен 999.
  • Запросы к ролям не поддерживают разбиение на страницы. Сюда входит чтение самих объектов роли, а также членов роли.
  • Запросы списка ресурсов, такие как поиск всех пользователей в клиенте (/users), не поддерживают разбиение на страницы. Например: https://graph.windows.net/contoso.com/users?api-version=1.6. Однако для всех типов запросов с применением фильтра разбиение на страницы не поддерживается, и возвращается только первая страница результатов.
  • Разбиение на страницы для поиска связей (например, данных о членстве в группах) не поддерживается. Например: https://graph.windows.net/contoso.com/groups/3f575eef-bb04-44a5-a9af-eee9f547e3f9/$links/members?api-version=1.6.

Порядок сортировки

  • Результирующий набор запроса всех пользователей упорядочивается по свойству UserPrincipalName. Например: https://graph.windows.net/contoso.com/users?api-version=1.6.
  • Результирующий набор запроса всех других ресурсов верхнего уровня, таких как группы, контакты и пр., упорядочивается по свойству objectId. Например: https://graph.windows.net/contoso.com/groups?api-version=1.6.
  • Порядок результатов других запросов (отличных от запросов ресурсов верхнего уровня) не определен.

Стандартные запросы

В следующих разделах представлено несколько примеров стандартных запросов, которые можно выполнять с помощью API Graph.

Запрос ресурсов верхнего уровня

В следующих запросах показано, как получить доступ к ресурсам верхнего уровня в API Graph, на примере клиента contoso.com. Обратите внимание на то, что для выполнения запросов к клиенту потребуется заголовок авторизации, который содержит действительный токен носителя, полученный из Azure AD.

Ресурс верхнего уровня Результаты запроса URI (для contoso.com)
Ресурсы верхнего уровня Возвращает список URI ресурсов верхнего уровня для службы каталогов (также перечисленных ниже) https://graph.windows.net/contoso.com?api-version=1.6
Сведения об организации Возвращает сведения об организации https://graph.windows.net/contoso.com/tenantDetails?api-version=1.6
Контакты Возвращает контактную информацию организации https://graph.windows.net/contoso.com/contacts?api-version=1.6
Users Возвращает сведения о пользователе https://graph.windows.net/contoso.com/users?api-version=1.6
Группы Возвращает данные о группе https://graph.windows.net/contoso.com/groups?api-version=1.6
Роли каталога Возвращает все активированные роли каталога в клиенте https://graph.windows.net/contoso.com/directoryRoles?api-version=1.6
SubscribedSkus Возвращает подписки клиента https://graph.windows.net/contoso.com/subscribedSkus?api-version=1.6
Метаданные каталога Возвращает документ метаданных службы, описывающий модель данных (то есть структуру и организацию ресурсов каталога) https://graph.windows.net/contoso.com/$metadata?api-version=1.6

Другие операции запросов

В следующей таблице представлено несколько дополнительных примеров запросов API Graph, где в качестве примера используется клиент contoso.com.

Операция запроса URI (для contoso.com)
Выводит список всех пользователей и групп https://graph.windows.net/contoso.com/users?api-version=1.6

https://graph.windows.net/contoso.com/groups?api-version=1.6
Получение отдельных пользователей путем указания objectId или userPrincipalName https://graph.windows.net/contoso.com/users/d1f67a6c-02c9-4fe5-81fb-58160ce24fe5?api-version=1.6

https://graph.windows.net/contoso.com/users/admin@contoso.com?api-version=1.6
Запрос и фильтр для пользователя, в котором displayName имеет значение Jon Doe https://graph.windows.net/contoso.com/users?$filter=displayName eq 'Jon Doe'&api-version=1.6
Запрос и фильтр для определенных пользователей, в котором firstName имеет значение Jon https://graph.windows.net/contoso.com/users?$filter=givenName eq 'Jon'&api-version=1.6
Фильтр по значениям givenName и фамилии. https://graph.windows.net/contoso.com/users?$filter=givenName eq 'Jon' and surname eq 'Doe'&api-version=1.6
Получение отдельной группы путем указания objectId https://graph.windows.net/contoso.com/groups/06790a81-0382-434c-b40e-216fa41bda21?api-version=1.6
Получение руководителя пользователя https://graph.windows.net/contoso.com/users/John.Smith@contoso.com/manager?api-version=1.6
Получение списка непосредственных подчиненных пользователя https://graph.windows.net/contoso.com/users/3c4a09b0-a7b6-444e-9702-96983635a66e/directReports?api-version=1.6
Получение списка ссылок на непосредственных подчиненных пользователя https://graph.windows.net/contoso.com/users/3c4a09b0-a7b6-444e-9702-96983635a66e/$links/directReports?api-version=1.6
Получение списка членов группы https://graph.windows.net/contoso.com/groups/3f575eef-bb04-44a5-a9af-eee9f547e3f9/members?api-version=1.6
Получение списка ссылок на членов группы. https://graph.windows.net/contoso.com/groups/3f575eef-bb04-44a5-a9af-eee9f547e3f9/$links/members?api-version=1.6
Получение списка групп, членом (постоянным) которых является пользователь https://graph.windows.net/contoso.com/users/ee6308f6-646a-4845-a4e1-57ac96ccc0c8/memberOf?api-version=1.6
Получение списка групп, членом (постоянным) которых является пользователь https://graph.windows.net/contoso.com/users/ee6308f6-646a-4845-a4e1-57ac96ccc0c8/$links/memberOf?api-version=1.6
Запрос и фильтр для групп с displayName >= "az" and <= "dz" https://graph.windows.net/contoso.com/groups?$filter=displayName ge 'az' and displayName le 'dz'&api-version=1.6
Возвращать все локальные учетные записи пользователей в клиенте Azure Active Directory B2C https://graph.windows.net/contoso.com/users?filter=creationType eq 'LocalAccount'&api-version=1.6
Возвращает локальную учетную запись пользователя с именем входа joe@example.com из клиента Azure Active Directory B2C https://graph.windows.net/contoso.com/users?$filter=signInNames/any(x:x/value eq 'joe@example.com')&api-version=1.6

Примечание. Пробел в строке запроса должен быть закодирован в формате URL перед отправкой запроса. Например, следующая строка запроса https://graph.windows.net/contoso.com/users?$filter=displayName eq 'Jon Doe'&api-version=1.6 должна быть закодирована в формате URL-адреса так: https://graph.windows.net/contoso.com/users?$filter=displayName%20eq%20'Jon%20Doe'&api-version=1.6.

Дополнительные ресурсы