Formuler et tester une requête d'adhésion

Ce document explique comment formuler et tester vos requêtes d'adhésion afin de vous assurer que les bons utilisateurs sont renvoyés.

Avant de commencer

Effectuez les tâches suivantes avant d'utiliser les informations fournies sur cette page :

Formuler et tester votre requête

Les requêtes d'adhésion prennent la forme target_field condition et sont mises en forme en tant qu'expressions CEL (Common Expression Language). Pour obtenir la liste des champs de ressources User pouvant être utilisés, consultez la page Attributs utilisateur valides pour les groupes dynamiques.

Exemples de requêtes

L'exemple suivant montre comment rechercher une valeur spécifique dans un champ user.addresses à l'aide de la fonction CEL exists() :

user.addresses.exists(ad, ad.locality=='Sunnyvale')

La macro exists() permet de créer des requêtes d'adhésion pour les champs de type liste.

Voici un exemple de vérification de plusieurs valeurs, area et building_id (du bâtiment), dans une seule entrée de liste :

user.locations.exists(loc, loc.area=='Sunnyvale' && loc.building_id=='Building 1')

L'exemple suivant montre comment rechercher les utilisateurs faisant partie d'une unité organisationnelle donnée :

  • Tous les utilisateurs directs d'une unité organisationnelle donnée : user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
  • Tous les utilisateurs directs et indirects sous une unité organisationnelle donnée : user.org_units.exists(org_unit, org_unit.org_unit_id==orgUnitId('03ph8a2z1khexns'))
user.name.value.equalsIgnoreCase('jOhn DoE')`

Négation dans les requêtes

Vous pouvez utiliser un opérateur NOT ! dans les requêtes d'appartenance pour exclure les utilisateurs disposant de certains attributs. Voici quelques exemples :

  • Tous les utilisateurs qui n'appartiennent pas à une unité organisationnelle donnée:

    !(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
    
  • Tous les utilisateurs qui n'appartiennent pas à l'organisation Marketing:

    !user.organization.exists(org, org.title = "Marketing")
    

Certaines combinaisons de l'opérateur NOT ! et de la macro exists() ne sont pas compatibles:

  • Toute requête NOT ! utilisant la macro exists() et l'opérateur AND &&:

    !user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
    
  • Toute requête utilisant la macro exists() avec l'opérateur NOT ! à l'intérieur:

    user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
    

Tester des requêtes d'adhésion

Pour tester vos requêtes d'adhésion, vous pouvez utiliser le générateur de requêtes simples. Il vous permet d'utiliser des menus déroulants et des champs de texte pour saisir et tester une requête. Après vous être assuré que la requête d'adhésion renvoie les résultats corrects, vous pouvez créer les requêtes CEL correspondantes avec l'API Groups.

Attributs utilisateur personnalisés

Les attributs utilisateur personnalisés peuvent être utilisés dans les requêtes de groupe dynamique tant que le schéma personnalisé existe déjà dans user.custom_schemas, mais ils ne sont pas compatibles avec les menus déroulants du générateur de requêtes simples. Pour tester une requête associée à un attribut utilisateur personnalisé, saisissez-le au format de requête CEL directement dans la zone de texte Saisir la requête CEL. Voici un exemple de schéma personnalisé :

{
  "schemaName": "employmentData",
  "fields": [
    {
      "fieldName": "EmployeeNumber",
      "fieldType": "STRING",
      "multiValued": "false"
    },
    {
      "fieldName": "JobFamily",
      "fieldType": "STRING",
      "multiValued": "true"
    }
  ]
}

Champ à valeur unique

user.custom_schemas.employmentData.EmployeeNumber == 'value'

Champ à valeurs multiples

user.custom_schemas.employmentData.JobFamily.exists(fld, fld == 'value')

Étape suivante

Après avoir testé votre requête d'adhésion, vous pouvez l'utiliser lors de la création d'un groupe. Pour en savoir plus, consultez la section Créer un groupe dynamique.