特定の属性に一致するユーザーを検索するには、Directory API の users.list()
メソッドを使用します。このメソッドは、1 つ以上の検索句を組み合わせた検索クエリである query
パラメータを受け入れます。各検索句は、次の 3 つの部分で構成されます。
- 項目
- 検索対象のユーザー属性。例:
givenName
- 演算子
- 一致を判定するためにデータに対して実行されるテスト。たとえば、
:
演算子は、テキスト属性に値が含まれているかどうかをテストします。 - 値
- テスト対象の属性の内容。例:
Jane
クエリ内の複数のフィールドを検索するには、各検索句をスペースで区切って追加します。オペレーションは暗黙的な AND
です。
フィールド
項目 | 値の型 | 演算子 | 説明 |
---|---|---|---|
指定なし | 文字列 | givenName 、familyName 、または email の値と比較します。 |
|
name |
文字列 | =, : |
givenName と familyName を連結した値。 |
email |
文字列 | = さん、: さん、:{PREFIX}* さん |
ユーザーのメールアドレス(エイリアスを含む)。 |
givenName |
文字列 | = さん、: さん、:{PREFIX}* さん |
ユーザーの名または名。 |
familyName |
文字列 | = さん、: さん、:{PREFIX}* さん |
ユーザーの姓。 |
isAdmin |
ブール値 | = |
ユーザーに特権管理者権限があるかどうか。 |
isDelegatedAdmin |
ブール値 | = |
ユーザーが管理者権限が委任されているかどうか。 |
isSuspended |
ブール値 | = |
ユーザーのアカウントが停止されているかどうか。 |
isArchived |
ブール値 | = |
ユーザーのアカウントがアーカイブされているかどうか。 |
im |
文字列 | =, : |
IM ネットワーク ID。 |
externalId |
文字列 | =, : |
外部 ID の値。 |
manager |
文字列 | = |
ユーザーのマネージャーのメールアドレス(直接または管理チェーンの上位層)。 |
managerId |
文字列 | = |
ユーザーのマネージャーの ID(直接管理または管理チェーンの上位)。 |
directManager |
文字列 | = |
ユーザーの直属のマネージャーのメールアドレスです。 |
directManagerId |
文字列 | = |
ユーザーの直属のマネージャーの ID。 |
address |
文字列 | : |
すべての住所フィールドと一致します。 |
addressPoBox |
文字列 | =, : |
私書箱。 |
addressExtended |
文字列 | =, : |
拡張された住所(小地域を含む住所など)。 |
addressStreet |
文字列 | =, : |
番地です。 |
addressLocality |
文字列 | =, : |
住所の町や都市。 |
addressRegion |
文字列 | =, : |
省略された都道府県。 |
addressPostalCode |
文字列 | =, : |
郵便番号。 |
addressCountry |
文字列 | =, : |
国。 |
orgName |
文字列 | =, : |
組織名。 |
orgTitle |
文字列 | =, : |
組織内のユーザーの役職。 |
orgDepartment |
文字列 | =, : |
組織内の部門。 |
orgDescription |
文字列 | =, : |
組織の説明。 |
orgCostCenter |
文字列 | =, : |
組織のコストセンター。 |
phone |
文字列 | = |
ユーザーの電話番号。 |
orgUnitPath |
文字列 | = |
組織部門のフルパス。ターゲットに含まれるすべての組織部門チェーンに一致します。たとえば、'orgUnitPath=/' は組織内のすべてのユーザーを返します。このフィールドは、viewType=admin_view の場合にのみ使用できます。 |
isEnrolledIn2Sv |
ブール値 | = |
ユーザーが 2 段階認証プロセスに登録しているかどうか。 |
isEnforcedIn2Sv |
ブール値 | = |
ユーザーに 2 段階認証プロセスを適用するかどうか。 |
schemaName.fieldName |
? | ? | カスタム ユーザー属性。スキーマとフィールド名で参照されます。フィールドの indexed プロパティが true に設定されている必要があります。 |
値の型
値の型 | 同等のスキーマ fieldType | メモ |
---|---|---|
文字列 | STRING 、EMAIL 、PHONE |
クエリに空白文字が含まれている場合は単一引用符 ' で囲みます。\' を使用してクエリ内の単一引用符をエスケープします(例: 'Valentine\'s Day' )。 |
ブール値 | BOOL |
値は true または false にする必要があります。= 演算子のみがサポートされています。 |
数値 | INT64 、DOUBLE |
小数点としてピリオドを使用し、3 桁ごとの区切り記号は使用しません(例: 150430.25 )。 |
date | DATE |
YYYY-MM-DD 形式で指定します(例: 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
に「Manager」を含むユーザーを検索する
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]
2 段階認証プロセスに登録済みのすべての従業員を検索する
isEnrolledIn2Sv=true
2 段階認証プロセスが適用されているすべての従業員を検索する
isEnforcedIn2Sv=true