Вы можете искать пользователей, соответствующих определенным атрибутам, с помощью метода users.list() API каталога. Этот метод принимает параметр query , представляющий собой поисковый запрос, объединяющий одно или несколько условий поиска. Каждое условие поиска состоит из 3 частей:
- Поле
- Искомый атрибут пользователя. Например,
givenName. - Оператор
- Проверка, выполняемая над данными для обеспечения соответствия. Например, оператор
:" проверяет, содержит ли текстовый атрибут значение. - Ценить
- Содержание проверяемого атрибута. Например,
Jane.
Для поиска по нескольким полям в запросе добавьте каждое условие поиска, разделяя их пробелом. Операция представляет собой неявное AND
Поля
| Поле | Тип значения | Операторы | Описание |
|---|---|---|---|
| Не указано | нить | Сравните со значением в givenName , familyName или email . | |
name | нить | =, : | Объединенное значение полей givenName и familyName . |
email | нить | = , : , :{PREFIX}* | Адреса электронной почты пользователя, включая псевдонимы. |
givenName | нить | = , : , :{PREFIX}* | Имя или имя пользователя. |
familyName | нить | = , : , :{PREFIX}* | Фамилия или род занятий пользователя. |
isAdmin | логический | = | Есть ли у пользователя права суперадминистратора. |
isDelegatedAdmin | логический | = | Есть ли у пользователя делегированные права администратора. |
isSuspended | логический | = | Указывается, заблокирована ли учетная запись пользователя. |
isArchived | логический | = | Указывается, находится ли учетная запись пользователя в архиве. |
im | нить | =, : | Идентификатор сети мгновенных сообщений. |
externalId | нить | =, : | Внешний идентификатор. |
manager | нить | = | Адрес электронной почты непосредственного руководителя пользователя или вышестоящего звена в управленческой цепочке. |
managerId | нить | = | Идентификатор руководителя пользователя, либо непосредственного, либо вышестоящего по управленческой цепочке. |
directManager | нить | = | Адрес электронной почты непосредственного руководителя пользователя. |
directManagerId | нить | = | Идентификатор непосредственного руководителя пользователя. |
address | нить | : | Соответствует всем полям адреса. |
addressPoBox | нить | =, : | Почтовый ящик. |
addressExtended | нить | =, : | Расширенный адрес, например, включающий название субрегиона. |
addressStreet | нить | =, : | Адрес. |
addressLocality | нить | =, : | Город или населенный пункт, по которому указан адрес. |
addressRegion | нить | =, : | Сокращенное название провинции или штата. |
addressPostalCode | нить | =, : | Почтовый индекс. |
addressCountry | нить | =, : | Страна. |
orgName | нить | =, : | Название организации. |
orgTitle | нить | =, : | Должность пользователя в организации. |
orgDepartment | нить | =, : | Подразделение внутри организации. |
orgDescription | нить | =, : | Описание организации. |
orgCostCenter | нить | =, : | Центр затрат организации. |
phone | нить | = | Номер телефона пользователя. |
orgUnitPath | нить | = | Полный путь к организационной единице. Соответствует всем цепочкам организационных единиц в целевой системе. Например, 'orgUnitPath=/' возвращает всех пользователей в организации. Это поле можно использовать только при viewType=admin_view . |
isEnrolledIn2Sv | логический | = | Указывается, подключен ли пользователь к двухфакторной аутентификации. |
isEnforcedIn2Sv | логический | = | Применяется ли к пользователю двухфакторная аутентификация. |
schemaName.fieldName | ? | ? | Пользовательский атрибут , на который ссылаются по его схеме и имени поля. Для поля свойство indexed должно быть установлено в true . |
Типы значений
| Тип значения | Эквивалентное поле Schema fieldType | Примечания |
|---|---|---|
| нить | STRING , EMAIL , PHONE | Если запрос содержит пробелы, заключите его в одинарные кавычки ' . Одинарные кавычки в запросах экранируйте с помощью \' , например, 'Valentine\'s Day' . |
| логический | BOOL | Должен иметь значение true или false . Поддерживается только оператор = . |
| число | INT64 , DOUBLE | В качестве десятичного разделителя необходимо использовать точку, а разделитель тысяч не используется, например, 150430.25 . |
| дата | DATE | Указывается в формате ГГГГ-ММ-ДД, например, 2001-02-15 . |
Операторы
| Оператор | Поддерживаемые типы значений | Примечания |
|---|---|---|
= | строка, логическое значение, число, дата | Поле и значение совпадают точно. Например, givenName=Jane соответствует всем пользователям с атрибутом givenName "Jane" , но не "Jane Ann" . Поддерживается для большинства строковых полей ( см. выше ). |
: | нить | Поле содержит целые слова значения в порядке следования. Например, запрос с givenName:Jane соответствует пользователям со значениями givenName "Jane" и "Jane Ann" , но не "Janet" . Многословный запрос с 'givenName:Mary Ann' будет соответствовать значениям "Mary Ann Evans" и "Sarah Mary Ann" , но не "Ann Mary" . Поддерживается для большинства строковых полей ( см. выше ). |
:{PREFIX}* | нить | Поле начинается со значения. Например, запрос с givenName:Jane* соответствует пользователям со значениями givenName "Jane" , "Jane Ann" и "Janet" , но не "Sarah Jane" . Поддерживается только для ограниченного набора строковых полей ( см. выше ). Не поддерживается для пользовательских атрибутов. |
:[{MIN},{MAX}] | номер, дата | Поле находится в заданном диапазоне. Для соответствия значению поля оно должно быть больше или равно {MIN} и меньше {MAX} . Для поддержки этого оператора пользовательские числовые атрибуты должны указывать numericIndexingSpec . |
> | номер, дата | Значение поля больше указанного. Для поддержки этого оператора пользовательские числовые атрибуты должны указывать параметр numericIndexingSpec . |
>= | номер, дата | Значение поля больше или равно заданному значению. Для поддержки этого оператора пользовательские числовые атрибуты должны указывать numericIndexingSpec . |
< | номер, дата | Значение поля меньше заданного. Для поддержки этого оператора пользовательские числовые атрибуты должны указывать numericIndexingSpec . |
<= | номер, дата | Значение поля меньше или равно заданному значению. Для поддержки этого оператора пользовательские числовые атрибуты должны указывать numericIndexingSpec . |
Примеры
Все запросы используют метод users.list , HTTP-запрос которого выглядит примерно так (для удобства чтения добавлены переносы строк):
GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS
Найти пользователя по имени
Поле запроса name проверяет объединенное значение полей givenName и familyName . Запрос по name='Jane' не возвращает результатов для пользователя с givenName='Jane' и familyName='Smith' .
name='Jane Smith'
Найдите пользователей, у которых givenName ИЛИ familyName содержит значение
name:'Jane'
Поиск пользователей, соответствующих префиксу электронной почты.
email:admin*
Поиск всех суперадминистраторов
isAdmin=true
Найдите пользователей, в названии orgTitles которых содержится слово "Менеджер".
orgTitle:Manager
Найдите пользователей, у которых в иерархии подчинения есть общий руководитель.
manager='janesmith@example.com'
Поиск пользователей с тем же непосредственным руководителем.
directManager='bobjones@example.com'
Поиск пользователей в заданной стране
addressCountry='Sweden'
Поиск пользователей в конкретной организации
orgName='Human Resources'
Поиск менеджеров в конкретной организации
orgName=Engineering orgTitle:Manager
Поиск по пользовательским атрибутам
Найдите всех сотрудников, работающих над конкретным проектом.
EmploymentData.projects:'GeneGnomes'
Поиск всех сотрудников в определенном месте.
EmploymentData.location='Atlanta'
Поиск всех сотрудников выше 7-го уровня должности.
EmploymentData.jobLevel>=7
Найдите всех сотрудников с уровнями должностей >= 5 и < 8.
EmploymentData.jobLevel:[5,8]
Найдите всех сотрудников, зарегистрированных в двухэтапной системе vVerification.
isEnrolledIn2Sv=true
Найдите всех сотрудников, у которых включена двухфакторная аутентификация.
isEnforcedIn2Sv=true