Puoi cercare gli utenti corrispondenti a determinati attributi con il metodo users.list() dell'API Directory. Questo metodo accetta il parametro query, che è una query di ricerca che combina una o più clausole di ricerca. Ogni clausola di ricerca è composta da tre parti:
- Campo
- Attributo utente per cui viene eseguita la ricerca. Ad esempio, givenName.
- Operatore
- Test eseguito sui dati per trovare una corrispondenza. Ad esempio, l'operatore :verifica se un attributo di testo contiene un valore.
- Valore
- I contenuti dell'attributo sottoposto a test. Ad esempio, Jane.
Per cercare in più campi in una query, aggiungi ogni clausola di ricerca separata da uno spazio. L'operazione è un AND implicito.
Campi
| Campo | Tipo di valore | Operatori | Descrizione | 
|---|---|---|---|
| Nessun valore specificato | stringa | Confronta con il valore in givenName,familyNameoemail. | |
| name | stringa | =, : | Il valore concatenato di givenNameefamilyName. | 
| email | stringa | =,:,:{PREFIX}* | Gli indirizzi email dell'utente, inclusi gli alias. | 
| givenName | stringa | =,:,:{PREFIX}* | Il nome o il nome di battesimo di un utente. | 
| familyName | stringa | =,:,:{PREFIX}* | Il cognome o il nome di un utente. | 
| isAdmin | booleano | = | Indica se un utente dispone dei privilegi di super amministratore. | 
| isDelegatedAdmin | booleano | = | Indica se un utente ha i privilegi di amministratore delegati. | 
| isSuspended | booleano | = | Indica se l'account di un utente è sospeso. | 
| isArchived | booleano | = | Indica se l'account di un utente è archiviato. | 
| im | stringa | =, : | ID rete di messaggistica istantanea. | 
| externalId | stringa | =, : | Valore dell'ID esterno. | 
| manager | stringa | = | L'indirizzo email del manager di un utente direttamente o nella catena di gestione. | 
| managerId | stringa | = | L'ID dell'amministratore di un utente direttamente o nella catena di gestione. | 
| directManager | stringa | = | L'indirizzo email del responsabile diretto di un utente. | 
| directManagerId | stringa | = | L'ID dell'amministratore diretto di un utente. | 
| address | stringa | : | Corrisponde a tutti i campi dell'indirizzo. | 
| addressPoBox | stringa | =, : | Una casella postale. | 
| addressExtended | stringa | =, : | Un indirizzo esteso, ad esempio uno che include una sottoregione. | 
| addressStreet | stringa | =, : | Indirizzo e numero civico. | 
| addressLocality | stringa | =, : | Una città o un paese dell'indirizzo. | 
| addressRegion | stringa | =, : | Una provincia o uno stato abbreviati. | 
| addressPostalCode | stringa | =, : | Un CAP o un codice postale. | 
| addressCountry | stringa | =, : | Un paese. | 
| orgName | stringa | =, : | Il nome di un'organizzazione. | 
| orgTitle | stringa | =, : | Il titolo di un utente all'interno dell'organizzazione. | 
| orgDepartment | stringa | =, : | Un reparto all'interno dell'organizzazione. | 
| orgDescription | stringa | =, : | La descrizione di un'organizzazione. | 
| orgCostCenter | stringa | =, : | Il centro di costo di un'organizzazione. | 
| phone | stringa | = | Il numero di telefono di un utente. | 
| orgUnitPath | stringa | = | Il percorso completo di un'unità organizzativa. Corrisponde a tutte le catene di unità organizzative sotto il target. Ad esempio, 'orgUnitPath=/'restituisce tutti gli utenti dell'organizzazione. Questo campo può essere utilizzato solo quandoviewType=admin_view. | 
| isEnrolledIn2Sv | booleano | = | Indica se un utente è registrato per la verifica in due passaggi. | 
| isEnforcedIn2Sv | booleano | = | Indica se la verifica in due passaggi è impostata per l'utente. | 
| schemaName.fieldName | ? | ? | Un attributo utente personalizzato, a cui viene fatto riferimento tramite il nome dello schema e del campo. La proprietà indexeddel campo deve essere impostata sutrue. | 
Tipi di valori
| Tipo di valore | fieldType dello schema equivalente | Note | 
|---|---|---|
| stringa | STRING,EMAIL,PHONE | Racchiudi la query tra virgolette singole 'se contiene spazi vuoti. Inserisci un carattere di escape per le virgolette singole nelle query con\', ad esempio'Valentine\'s Day'. | 
| booleano | BOOL | Deve avere un valore trueofalse. Supporta solo l'operatore=. | 
| numero | INT64,DOUBLE | Deve essere utilizzato un punto come separatore decimale e nessun separatore di migliaia, ad esempio 150430.25. | 
| data | DATE | Specificato nel formato AAAA-MM-GG, ad esempio 2001-02-15. | 
Operatori
| Operatore | Tipi di valori supportati | Note | 
|---|---|---|
| = | stringa, booleano, numero, data | Il campo e il valore corrispondono esattamente. Ad esempio, givenName=Janecorrisponde a tutti gli utenti con l'attributogivenName"Jane", ma non a"Jane Ann". Supportato nella maggior parte dei campi di stringa (vedi sopra). | 
| : | stringa | Il campo contiene le parole intere all'interno del valore, in ordine. Ad esempio, una query con givenName:Janetrova una corrispondenza con gli utenti con valorigivenNamedi"Jane"e"Jane Ann", ma non"Janet". Una query di più parole per'givenName:Mary Ann'corrisponde ai valori di"Mary Ann Evans"e"Sarah Mary Ann", ma non a"Ann Mary". Supportato nella maggior parte dei campi di stringa (vedi sopra). | 
| :{PREFIX}* | stringa | Il campo inizia con il valore. Ad esempio, una query con givenName:Jane*trova gli utenti con valorigivenNamepari a"Jane","Jane Ann"e"Janet", ma non"Sarah Jane". Supportato solo per un insieme limitato di campi di stringa (vedi sopra). Non supportato per gli attributi personalizzati. | 
| :[{MIN},{MAX}] | number, date | Il campo rientra in un intervallo. Per la corrispondenza, il valore del campo deve essere maggiore o uguale a {MIN}e minore di{MAX}. Per supportare questo operatore, gli attributi numerici personalizzati devono specificare unnumericIndexingSpec. | 
| > | number, date | Il campo è maggiore del valore. Per supportare questo operatore, gli attributi numerici personalizzati devono specificare un numericIndexingSpec. | 
| >= | number, date | Il campo è maggiore o uguale al valore. Per supportare questo operatore, gli attributi numerici personalizzati devono specificare un numericIndexingSpec. | 
| < | number, date | Il campo è inferiore al valore. Per supportare questo operatore, gli attributi numerici personalizzati devono specificare un numericIndexingSpec. | 
| <= | number, date | Il campo è minore o uguale al valore. Per supportare questo operatore, gli attributi numerici personalizzati devono specificare un numericIndexingSpec. | 
Esempi
Tutte le query utilizzano il metodo users.list, che ha una richiesta HTTP simile alla seguente (interruzioni di riga incluse per la leggibilità):
GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS
Cercare un utente per nome
Il campo di query name esegue test sul valore concatenato di givenName
e familyName. Una query per name='Jane' non restituisce risultati per un utente con givenName='Jane' e familyName='Smith'.
name='Jane Smith'
Cercare utenti con un givenName OPPURE familyName che contiene un valore
name:'Jane'
Cercare gli utenti corrispondenti a un prefisso email
email:admin*
Cercare tutti i super amministratori
isAdmin=true
Cercare gli utenti con orgTitles contenente "Gestore"
orgTitle:Manager
Cercare gli utenti con un responsabile comune nella catena di generazione di report
manager='janesmith@example.com'
Cercare gli utenti con lo stesso amministratore diretto
directManager='bobjones@example.com'
Cercare utenti in un determinato paese
addressCountry='Sweden'
Cercare utenti in un'organizzazione specifica
orgName='Human Resources'
Cercare i gestori di un'organizzazione specifica
orgName=Engineering orgTitle:Manager
Cercare gli attributi utente personalizzati
Cercare tutti i dipendenti che lavorano a un progetto specifico
EmploymentData.projects:'GeneGnomes'
Cercare tutti i dipendenti in una località specifica
EmploymentData.location='Atlanta'
Cercare tutti i dipendenti di livello superiore al 7
EmploymentData.jobLevel>=7
Cerca tutti i dipendenti con livelli di lavoro compresi tra 5 e 8
EmploymentData.jobLevel:[5,8]
Cercare tutti i dipendenti che hanno eseguito la registrazione alla verifica in due passaggi
isEnrolledIn2Sv=true
Cercare tutti i dipendenti per i quali è stata impostata la verifica in due passaggi
isEnforcedIn2Sv=true