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 :
Consultez la Présentation de l'API Groups.
Consultez la Présentation des groupes dynamiques.
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 macroexists()
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.