Passer au contenu principal
Ce contenu décrit la Recherche d’utilisateurs Auth0 actuelle, version 3.
Lors de la recherche d’utilisateurs, vous pouvez créer des requêtes en utilisant la syntaxe de requête Lucene pour affiner votre recherche. La chaîne de requête est analysée en séries de termes et d’opérateurs :
  • Un terme peut être un mot unique tel que jane ou smith.
  • Il peut s’agir d’une phrase entourée de guillemets ("green apple"), qui correspondra à tous les mots de la phrase dans le même ordre.
  • Un terme sans nom de champ ne correspondra pas au texte des champs métadonnées utilisateur.
  • Plusieurs termes peuvent être regroupés entre parenthèses pour former des sous-requêtes.
  • Les valeurs de recherche pour les champs utilisateur normalisés (email, name, given_name, family_name, et nickname) sont insensibles à la casse. Tous les autres champs (y compris tous les champs app_metadata/user_metadata) sont sensibles à la casse.
  • Les opérateurs (AND, OR, NOT) fonctionnent sur tous les champs utilisateur normalisés et les champs de métadonnées racine.
  • Les opérateurs doivent toujours être mis en majuscules.

Champs pouvant être recherchés

Vous pouvez rechercher des utilisateurs à l’aide de tous les champs de profil utilisateur normalisé et des champs ci-dessous :
Rercherche ChampType  de donnéesDescription
phone_numbertexteLe numéro de téléphone de l’utilisateur. Valide uniquement pour les utilisateurs disposant d’un appareil compatible SMS.
phone_verifiedbooléenLa valeur true/false (« vrai/faux ») indique si le numéro de téléphone de l’utilisateur a été vérifié. Valide uniquement pour les utilisateurs disposant d’un appareil compatible SMS.
logins_countentierLe nombre de fois où l’utilisateur s’est connecté. Si un utilisateur est bloqué et se connecte, la session bloquée est comptabilisée dans logins_count et met à jour la valeur last_login.
created_atdate timeHorodatage de la création du profil utilisateur.
updated_atdate timeHorodatage de la dernière mise à jour/modification du profil de l’utilisateur.
last_logindate timeL’horodatage de la dernière connexion de l’utilisateur. Dans le cas où cette propriété est exécutée à l’intérieur d’une Rule (Règle avec l’objet user, la valeur sera employée pour la connexion qui a déclenché la règle (puisque les Règles s’exécutent après la connexion réelle).
last_iptexte (adresse IP valide)L’adresse IP employée lors de la dernière connexion de l’utilisateur.
blockedbooléenLa valeur true (vrai) ou false (faux) indique si l’utilisateur a été bloqué. Remarque : true rapporte seulement les utilisateurs bloqués via le tableau de bord de l’administrateur et Management API; il ne rapporte pas les utilisateurs bloqués par la détection d’anomalie par force brute.
email.domaintexteLa partie domaine du courriel de l’utilisateur.
organization_idtext (identifiant d’organization valide)L’organization dont l’utilisateur est membre.
Les champs de métadonnées peuvent être utilisés avec :
  • booléen
  • numériques : entiers ou doubles
  • texte
  • objets : pour rechercher une valeur scalaire imbriquée dans un autre objet, utilisez le chemin d’accès au champ. Par exemple, app_metadata.subscription.plan:"gold"
  • tableaux : pour rechercher des champs dans des objets imbriqués dans des tableaux, utilisez le chemin d’accès au champ et ignorez le niveau du tableau. Par exemple, user_metadata.addresses.city:"Paris"
Les champs de métadonnées qui contiennent un tableau vide, un objet vide ou une valeur null ne sont pas indexés et ne peuvent pas être recherchés. Les recherches par plage et par caractères de remplacement ne sont pas utilisables sur les champs user_metadata.

Correspondance exacte

Pour trouver des correspondances exactes, utilisez des guillemets doubles : name:"jane smith". Par exemple, pour trouver les utilisateurs portant le nom jane smith, utilisez q=name:"jane smith" :
curl --request GET \
  --url 'https://{yourDomain}/api/v2/users?q=name%3A%22jane%20smith%22&search_engine=v3' \
  --header 'authorization: Bearer {yourMgmtApiAccessToken}'

Recherche générique

Les recherches par caractères de remplacement peuvent être effectuées sur les termes en utilisant le caractère astérisque (*) pour remplacer zéro ou plusieurs caractères. Les recherches par caractères de remplacement ne sont pas utilisables pour les champs user_metadata.

Exemples

  • name:john* renvoie tous les utilisateurs dont le nom commence par john.
  • name:j* renvoie tous les utilisateurs dont le nom commence par j.
  • q=name:john* renvoie tous les utilisateurs dont le nom commence par john.
  • Pour la correspondance des suffixes, les éléments littéraux doivent comporter trois caractères ou plus. Par exemple, name:*usa est autorisé, mais name:*sa ne l’est pas.
curl --request GET \
  --url 'https://{yourDomain}/api/v2/users?q=name%3Ajohn*&search_engine=v3' \
  --header 'authorization: Bearer {yourMgmtApiAccessToken}'

Plages

Vous pouvez utiliser des plages dans vos requêtes de recherche d’utilisateurs. Les recherches par plage ne sont pas utilisables pour les champs de métadonnées utilisateur.
  • Pour les plages inclusives, utilisez des crochets : [min TO max].
  • Pour les plages exclusives, utilisez des crochets : {min TO max}.
  • Les crochets et les apostrophes courbes peuvent être combinés dans la même expression de plage : logins_count:[100 TO 200}.
  • Utilisez les plages en combinaison avec des caractères de remplacement. Par exemple, pour trouver tous les utilisateurs ayant plus de 100 connexions, utilisez q=logins_count:{100 TO *].
curl --request GET \
  --url 'https://{yourDomain}/api/v2/users?q=logins_count%3A%7B100%20TO%20*%5D&search_engine=v3' \
  --header 'authorization: Bearer {yourMgmtApiAccessToken}'

Exemples d’attributs de profil pouvant faire l’objet d’une recherche

Lorsque vous recherchez des utilisateurs dans Management API Auth0, vous pouvez filtrer les utilisateurs par user_metadata ou app_metadata. Pour ce faire, vous pouvez utiliser la syntaxe de recherche Lucene avec le paramètre q . La liste de Management API Auth0 ou le point de terminaison de recherche des utilisateurs étant limité à 1 000 résultats (10 pages de 100 enregistrements), le filtrage est un moyen utile de s’assurer que les résultats les plus pertinents sont renvoyés. Vous trouverez ci-dessous un exemple de profil utilisateur user_metadata :
{
  "favorite_color": "blue",
  "approved": false,
  "preferredLanguage": "en",
  "preferences": {
    "fontSize": 13
  },
  "addresses":{
    "city":["Paris","Seattle"]
  }
}

Filtrer les attributs de métadonnées

Pour renvoyer une valeur user_metadata, mettez à jour la requête q avec un filtre pour l’attribut. Pour les valeurs user_metadata vous pouvez interroger le profil directement : q: _exists_:user_metadata.fav_color Cette requête renvoie tous les profils utilisateurs dont l’attribut fav_color figure dans les métadonnées user_metadata.

Filtrer les attributs et les valeurs des objets imbriqués des métadonnées

Vous pouvez également effectuer une recherche sur les objets imbriqués dans user_metadata : q: _exists_:user_metadata.preferences.fontSize Ceci permet d’interroger tous les profils utilisateurs dont les preferences.fontSize sont configurés dans les métadonnées user_metadata. Pour rechercher les valeurs d’un objet imbriqué à partir d’un autre objet, examinez la requête ci-dessous : q: user_metadata.preferences.fontSize:13 Cette requête renvoie tous les profils utilisateurs qui correspondent à l’attribut fontSize avec la valeur 13.

Filtrer les valeurs des tableaux imbriqués de métadonnées

Vous pouvez utiliser la requête ci-dessous pour rechercher des champs dans des tableaux imbriqués : q: user_metadata.addresses.city:"Seattle" Cette requête renvoie tous les profils utilisateurs qui renvoient la valeur Seattle à partir des attributs adress.citydans les user_metadata.

En savoir plus

I