Formulazione e test di una query di appartenenza
Questo documento spiega come formulare e testare le tue query di appartenenza per assicura che vengano restituiti gli utenti corretti.
Prima di iniziare
Prima di procedere con le informazioni in questa pagina, esegui le operazioni seguenti:
Leggi la panoramica dell'API Groups.
Leggi la panoramica sui gruppi dinamici.
Formulazione e test della query
Le query di appartenenza assumono la forma di target_field condition
e sono
formattato come
Common Expression Language (CEL)
le espressioni regolari. Consulta:
Attributi utente validi per i gruppi dinamici
per l'elenco di campi delle risorse User
che possono essere utilizzati.
Query di esempio
L'esempio seguente mostra come verificare un valore specifico in un
Campo user.addresses
utilizzando la funzione CEL exists()
:
user.addresses.exists(ad, ad.locality=='Sunnyvale')
La macro exists()
viene utilizzata per creare query di appartenenza per i campi di tipo
dall'elenco di lettura.
Ecco un esempio di come cercare più valori, (edificio) area
e
building_id
, in un'unica voce di elenco:
user.locations.exists(loc, loc.area=='Sunnyvale' && loc.building_id=='Building 1')
L'esempio seguente mostra come trovare gli utenti che fanno parte di un determinato unità organizzativa:
- Tutti gli utenti diretti di una determinata unità organizzativa:
user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
- Tutti gli utenti diretti e indiretti di una determinata unità organizzativa:
user.org_units.exists(org_unit, org_unit.org_unit_id==orgUnitId('03ph8a2z1khexns'))
user.name.value.equalsIgnoreCase('jOhn DoE')`
Negazione nelle query
Puoi utilizzare un operatore NOT !
nelle query di appartenenza per escludere gli utenti con
determinati attributi. Ecco alcuni esempi:
Tutti gli utenti che non appartengono a una determinata unità organizzativa:
!(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
Tutti gli utenti che non appartengono all'organizzazione
Marketing
:!user.organization.exists(org, org.title = "Marketing")
Alcune combinazioni dell'operatore NOT !
e della macro exists()
non sono supportate:
Qualsiasi query NOT
!
che utilizza la macroexists()
e l'operatore AND&&
al suo interno:!user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
Qualsiasi query che utilizza la macro
exists()
con l'operatore NOT!
al suo interno:user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
Test delle query di appartenenza
Per testare le query di appartenenza, puoi utilizzare semplice Query Builder. Consente di per utilizzare menu a discesa e campi di testo per inserire e testare una query. Dopo assicurati che la query di appartenenza restituisca i risultati corretti, puoi creare per le query CEL corrispondenti con l'API Groups.
Attributi utente personalizzati
Attributi utente personalizzati
può essere utilizzato nelle query dei gruppi dinamici purché lo schema personalizzato esista già
user.custom_schemas
, ma non sono supportati nel semplice Query Builder
menu a discesa. Per testare una query per un attributo utente personalizzato, inseriscilo nella query CEL
direttamente nella casella di testo Inserisci query cel. Uno schema personalizzato di esempio
ha il seguente aspetto:
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "true"
}
]
}
Campo con valore singolo
user.custom_schemas.employmentData.EmployeeNumber == 'value'
Campo a più valori
user.custom_schemas.employmentData.JobFamily.exists(fld, fld == 'value')
Passaggi successivi
Dopo aver testato la query di appartenenza, puoi utilizzarla durante la creazione di un gruppo. Per per saperne di più, consulta Creazione di un gruppo dinamico.