メインコンテンツへスキップ
この内容では、現在の Auth0 ユーザー検索 (バージョン 3) について説明します。
ユーザーを検索する際は、検索を絞り込むために Lucene query syntax を使用してクエリを作成できます。 クエリ文字列は、一連の用語と演算子に解析されます。
  • 用語には、janesmith のような単一の単語を指定できます。
  • 用語には、二重引用符で囲まれたフレーズ ("green apple") を指定することもでき、この場合、フレーズ内のすべての単語が同じ順序で一致します。
  • フィールド名のない用語は、ユーザーメタデータ フィールド内のテキストには一致しません。
  • 複数の用語は、丸括弧でグループ化してサブクエリを作成できます。
  • 正規化されたユーザーフィールド (emailnamegiven_namefamily_namenickname) の検索値では、大文字と小文字は区別されません。それ以外のすべてのフィールド (app_metadata / user_metadata のすべてのフィールドを含む) では、大文字と小文字が区別されます。
  • 演算子 (ANDORNOT) は、すべての正規化されたユーザーフィールドとルートメタデータフィールドで使用できます。
  • 演算子は必ず大文字で指定してください。

検索可能なフィールド

正規化されたユーザープロフィール フィールド と以下のフィールドを使用して、ユーザーを検索できます。
検索フィールドデータ型説明
phone_numbertextユーザーの電話番号。SMS 接続のユーザーに対してのみ有効です。
phone_verifiedbooleantrue/false の値は、ユーザーの電話番号が確認済みかどうかを示します。SMS 接続のユーザーに対してのみ有効です。
logins_countintegerユーザーのログイン回数。ユーザーがブロックされている状態でログインした場合、そのブロックされたセッションも logins_count にカウントされ、last_login の値も更新されます。
created_atdate timeユーザープロフィールが最初に作成された日時のタイムスタンプ。
updated_atdate timeユーザーのプロフィールが最後に更新または変更された日時のタイムスタンプ。
last_logindate timeユーザーが最後にログインした日時のタイムスタンプ。このプロパティを user オブジェクトとともに Rules 内から参照する場合、その値はその Rule をトリガーしたログインに対応します (Rules は実際のログイン後に実行されるため) 。
last_iptext (valid IP address)ユーザーの最後のログインに関連付けられた IP アドレス。
blockedbooleantrue または false の値は、ユーザーがブロックされているかどうかを示します。注: true で返されるのは Admin Dashboard と Management API によってブロックされたユーザーのみであり、ブルートフォース異常検知によってブロックされたユーザーは返されません。
email.domaintextユーザーのメールアドレスのドメイン部分。
organization_idtext (valid organization ID)ユーザーがメンバーである組織。
メタデータフィールドでは、以下の型を使用できます。
  • boolean
  • 数値: integer または double
  • text
  • オブジェクト: 別のオブジェクト内にネストされたスカラー値を検索するには、そのフィールドへのパスを使用します。例: app_metadata.subscription.plan:"gold"
  • 配列: 配列内のオブジェクトにネストされたフィールドを検索するには、そのフィールドへのパスを使用し、配列レベルは無視します。例: user_metadata.addresses.city:"Paris"
空の配列、空のオブジェクト、または null 値を含むメタデータフィールドはインデックス化されないため、検索できません。 user_metadata フィールドでは、範囲検索とワイルドカード検索は使用できません。

完全一致

完全一致を検索するには、二重引用符を使用します。name:"jane smith" たとえば、名前が jane smith のユーザーを検索するには、q=name:"jane smith" を使用します。

ワイルドカード

ワイルドカード検索では、アスタリスク文字 (*) を使って 0 文字以上を置き換え、用語を検索できます。ワイルドカード検索は user_metadata フィールドでは使用できません。

  • name:john* は、名前が john で始まるすべてのユーザーを返します。
  • name:j* は、名前が j で始まるすべてのユーザーを返します。
  • q=name:john* は、名前が john で始まるすべてのユーザーを返します。
  • 接尾辞一致の場合、リテラルは 3 文字以上である必要があります。たとえば、name:*usa`` は使用できますが、name:*sa` は使用できません。

範囲

ユーザー検索クエリでは範囲を使用できます。範囲検索はユーザーメタデータフィールドでは使用できません。
  • 包含範囲には角括弧を使用します: [min TO max]
  • 排他範囲には波括弧を使用します: {min TO max}
  • 波括弧と角括弧は、同じ範囲式内で組み合わせて使用できます: logins_count:[100 TO 200}
  • 範囲はワイルドカードと組み合わせて使用できます。たとえば、ログイン回数が 100 回を超えるすべてのユーザーを検索するには、q=logins_count:{100 TO *] を使用します。

検索可能なプロフィール属性の例

Auth0 のでユーザーを検索する場合、user_metadata または app_metadata を使ってユーザーを絞り込めます。そのためには、q パラメーターで Lucene Search Syntax を使用します。 Auth0 Management API のユーザーの一覧取得または検索エンドポイントは、結果が 1000 件 (100 件ずつの 10 ページ) までに制限されているため、絞り込みを行うことで、関連性の高い結果を確実に返しやすくなります。 以下は、ユーザープロフィールの user_metadata のサンプルです。
{
  "favorite_color": "blue",
  "approved": false,
  "preferredLanguage": "en",
  "preferences": {
    "fontSize": 13
  },
  "addresses":{
    "city":["Paris","Seattle"]
  }
}

メタデータ属性でフィルタリングする

user_metadata の値を返すには、属性フィルターを含めるように q クエリを更新します。 user_metadata の値については、プロファイルを直接クエリできます。 q: _exists_:user_metadata.fav_color このクエリは、user_metadatafav_color 属性を持つすべてのユーザープロファイルを返します。

メタデータ のネストされたオブジェクトの属性と値でフィルタリングする

user_metadata 内のネストされたオブジェクトも検索できます。 q: _exists_:user_metadata.preferences.fontSize このクエリは、user_metadatapreferences.fontSize が設定されているすべてのユーザープロファイルを検索します。 別のオブジェクト内にあるネストされたオブジェクトの値を検索するには、次のクエリを確認してください。 q: user_metadata.preferences.fontSize:13 このクエリは、fontSize 属性の値が 13 のすべてのユーザープロファイルを返します。

メタデータ内のネストされた配列の値をフィルタリングする

ネストされた配列内のフィールドを検索するには、以下のクエリを使用できます。 q: user_metadata.addresses.city:"Seattle" これにより、user_metadataaddress.city 属性の値が Seattle であるすべてのユーザープロファイルが返されます。

詳しく知る