特定の属性と一致するユーザーを検索するには、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* というクエリは、"Jane" 、"Jane Ann" 、"Janet" の givenName 値を持つユーザーに一致しますが、"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