Le richieste riportate di seguito illustrano la gestione dei criteri con l'API Policy. Prima di inizia, assicurati di leggere la panoramica dell'API Chrome Policy per un riepilogo generale delle funzionalità di questa API.
Tutte le richieste presentate di seguito utilizzano le seguenti variabili:
$TOKEN
- Token OAuth 2$CUSTOMER
- ID del cliente o letteralemy_customer
Elenca gli schemi per i criteri delle stampanti
Per elencare gli schemi che riguardano solo i criteri per le stampanti, applicheremo filter
alla richiesta di elenco del servizio schema. Puoi controllare l'impaginazione
utilizzando i parametri pageSize
e pageToken
.
Richiesta
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policySchemas?filter=chrome.printers&pageSize=2"
Risposta
{
"policySchemas": [
{
"name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForUsers",
"policyDescription": "Allows a printer for users in a given organization.",
"additionalTargetKeyNames": [
{
"key": "printer_id",
"keyDescription": "Id of printer as visible in Admin SDK printers API."
}
],
"definition": {
"messageType": [
{
"name": "AllowForUsers",
"field": [
{
"name": "allowForUsers",
"number": 1,
"label": "LABEL_OPTIONAL",
"type": "TYPE_BOOL"
}
]
}
]
},
"fieldDescriptions": [
{
"field": "allowForUsers",
"description": "Controls whether a printer is allowed for users in a given organization."
}
],
"schemaName": "chrome.printers.AllowForUsers"
},
{
"name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForDevices",
"policyDescription": "Allows a printer for devices in a given organization.",
"additionalTargetKeyNames": [
{
"key": "printer_id",
"keyDescription": "Id of printer as visible in Admin SDK printers API."
}
],
"definition": {
"messageType": [
{
"name": "AllowForDevices",
"field": [
{
"name": "allowForDevices",
"number": 1,
"label": "LABEL_OPTIONAL",
"type": "TYPE_BOOL"
}
]
}
]
},
"fieldDescriptions": [
{
"field": "allowForDevices",
"description": "Controls whether a printer is allowed for devices in a given organization."
}
],
"schemaName": "chrome.printers.AllowForDevices"
}
],
"nextPageToken": "AEbDN_obE8A98T8YhIeU9VCIZhEBylLBwZRQpGu_DUug-mU4bnzcDx30UnO2xMuuImvfVpmeuXRF6VhJ4OmZpZ4H6EaRvu2qMOPxVN_u"
}
Cerca schemi
Puoi creare query di ricerca complesse utilizzando il parametro filter=
nello schema
Richiesta di elenco dei servizi. Ad esempio, se vuoi cercare schemi con
la parola "stampante" nel nome e nella parola "dispositivi" nella descrizione che potresti applicare
il seguente valore al filtro name=printers AND description=devices
.
Scopri come elencare gli schemi dei criteri.
Richiesta
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policySchemas?filter=name=printers%20AND%20description=devices"
Risposta
{
"policySchemas": [
{
"name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForDevices",
"policyDescription": "Allows a printer for devices in a given organization.",
"additionalTargetKeyNames": [
{
"key": "printer_id",
"keyDescription": "Id of printer as visible in Admin SDK printers API."
}
],
"definition": {
"messageType": [
{
"name": "AllowForDevices",
"field": [
{
"name": "allowForDevices",
"number": 1,
"label": "LABEL_OPTIONAL",
"type": "TYPE_BOOL"
}
]
}
]
},
"fieldDescriptions": [
{
"field": "allowForDevices",
"description": "Controls whether a printer is allowed for devices in a given organization."
}
],
"schemaName": "chrome.printers.AllowForDevices"
}
]
}
Ottieni uno schema particolare
Nel risultato precedente, vediamo un elenco di schemi di criteri supportati. Ogni schema ha
un campo name
che identifica lo schema. In futuro, una volta che conosci
schema, puoi leggere lo schema specifico direttamente facendo riferimento al
nome dello schema nell'URL della richiesta.
Vediamo un esempio per lo schema chrome.printers.AllowForUsers
.
Richiesta
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policySchemas/chrome.printers.AllowForUsers"
Risposta
{
"name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForUsers",
"policyDescription": "Allows a printer for users in a given organization.",
"additionalTargetKeyNames": [
{
"key": "printer_id",
"keyDescription": "Id of printer as visible in Admin SDK printers API."
}
],
"definition": {
"messageType": [
{
"name": "AllowForUsers",
"field": [
{
"name": "allowForUsers",
"number": 1,
"label": "LABEL_OPTIONAL",
"type": "TYPE_BOOL"
}
]
}
]
},
"fieldDescriptions": [
{
"field": "allowForUsers",
"description": "Controls whether a printer is allowed for users in a given organization."
}
],
"schemaName": "chrome.printers.AllowForUsers"
}
Sopra la risposta dello schema dei criteri viene descritto lo schema di
chrome.printers.AllowForUsers
criterio. Campo avviso additionalTargetKeyNames
.
Questo campo spiega che il criterio richiede l'inserimento di chiavi/valori aggiuntivi.
quando abbiamo a che fare
con queste norme. In particolare, ai fini di questa norma dobbiamo sempre
che forniscono l'identificatore di una stampante.
Leggi un valore del criterio
Leggiamo un criterio chrome.printers.AllowForUsers
per una stampante specifica.
Nota: utilizza il campo additionalTargetKeys
per specificare l'ID stampante nella richiesta.
Puoi leggere un criterio da un'unità organizzativa o da un gruppo.
Nella risposta, nota il campo sourceKey
, che specifica quale
L'unità organizzativa o il gruppo da cui proviene il valore del criterio. Per
In base alle unità organizzative, esistono le seguenti possibilità:
- Se l'unità organizzativa di origine è uguale all'unità organizzativa specificata in un , significa che il criterio viene applicato localmente in questa unità organizzativa.
- Se l'unità organizzativa di origine è diversa dall'unità organizzativa specificata in una richiesta, significa che il criterio è ereditato dall'organizzazione di origine Unità.
- Se non è presente
sourceKey
o se la risposta è vuota, significa che il criterio non è impostato per il cliente e ha un valore di sistema predefinito.
Per i gruppi, la chiave source sarà sempre la stessa del gruppo precedente specificato nella richiesta.
L'esempio seguente riguarda un'unità organizzativa. Una richiesta di gruppo la stessa cosa tranne che per la risorsa target, che avrebbe "groups/" anziché "orgunits/" prima dell'ID.
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policySchemaFilter: "chrome.printers.AllowForDevices"
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies:resolve"
Risposta
{
"resolvedPolicies": [
{
"targetKey": {
"targetResource": "orgunits/03ph8a2z1xdnme9"
"additionalTargetKeys": {"printer_id":"0gjdgxs208tpef"}
},
"value": {
"policySchema": "chrome.users.AllowForDevices",
"value": {
"allowForDevices": true
}
},
"sourceKey": {
"targetResource": "orgunits/03ph8a2z3qhz81k"
}
}
]
}
Tieni presente che tutte le entità nelle risorse di destinazione possono essere recuperate omettendo
additionalTargetKeys
dalla richiesta. Ad esempio, se additionalTargetKeys
omesse dalla richiesta precedente, verrebbero restituite tutte le stampanti
risorsa di destinazione specificata.
Leggi più criteri
Fornire uno spazio dei nomi di schema con un asterisco (ad es. chrome.printers.*
) consente
è necessario leggere i valori di tutti i criteri all'interno di questo spazio dei nomi in una
Unità organizzativa o gruppo. Scopri di più su
Schemi dei criteri.
L'esempio seguente riguarda un'unità organizzativa. Una richiesta di gruppo la stessa cosa tranne che per la risorsa target, che avrebbe "groups/" anziché "orgunits/" prima dell'ID.
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
},
policySchemaFilter: "chrome.printers.*"
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies:resolve"
Risposta
{
"resolvedPolicies": [
{
"targetKey": {
"targetResource": "orgunits/04fatzly4jbjho9",
"additionalTargetKeys": {
"printer_id": "0gjdgxs0xd59y1"
}
},
"value": {
"policySchema": "chrome.printers.AllowForUsers",
"value": {
"allowForUsers": false
}
}
},
{
"targetKey": {
"targetResource": "orgunits/04fatzly4jbjho9",
"additionalTargetKeys": {
"printer_id": "0gjdgxs0xd59y1"
}
},
"value": {
"policySchema": "chrome.printers.AllowForDevices",
"value": {
"allowForDevices": false
}
}
},
//...
],
"nextPageToken": "AEbDN_pFvDeGSbQDkvMxr4UA0Ew7UEUw8aJyw95VPs2en6YxMmFcWQ9OQQEIeSkjnWFCQNyz5GGoOKQGEd50e2z6WqvM2w7sQz6TMxVOBD_4NmEHRWtIJCYymeYXWHIrNH29Ezl1wkeyYBAOKnE="
}
Modifica valore del criterio
Come indicato nella risposta dello schema del criterio, il criterio chrome.printers.AllowForUsers
ha un campo denominato allowForUsers
. Questo campo è di tipo booleano. Esempio
del criterio può essere {allowForUsers: false}
o
{allowForUsers: true}
. In questo caso particolare, abbiamo un solo campo,
Tuttavia, altri criteri possono
contenere più campi.
Nelle richieste di modifica, dobbiamo specificare un updateMask
. Aggiorna maschere elenchi tutti
e i campi da modificare. Se il criterio è già stato applicato localmente nel
L'unità organizzativa, i campi non elencati tramite la maschera di aggiornamento
rimangono intatti. Se il criterio non è già stato applicato localmente nel
L'unità organizzativa e tutti i campi non elencati tramite la maschera di aggiornamento
copiano i valori dall'unità organizzativa principale quando opportuno e
l'intero criterio verrà applicato localmente.
I seguenti esempi riguardano un'unità organizzativa. Le richieste di gruppo sono
uguale ad eccezione di targetResource, che avrebbe "groups/" anziché
"orgunits/" prima dell'ID. In questo caso non consentiremo l'utilizzo di una stampante 0gjdgxs208tpef
per
utenti con ID unità organizzativa 04fatzly4jbjho9
:
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policyValue: {
policySchema: "chrome.printers.AllowForUsers",
value: {allowForUsers: false}
},
updateMask: {paths: "allowForUsers"}
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
Risposta
La risposta corretta è vuota.
{}
I campi con più valori, come elenchi o array, sono contrassegnati con "LABEL_REPEATED"
dell'etichetta. Per compilare i campi con più valori, utilizza il seguente formato di array JSON:
[value1, value2, value3, ...]
.
Ad esempio, per impostare gli URL di origine per i pacchetti di app ed estensioni come "test1.com", "test2.com" e "test3.com", dobbiamo inviare la seguente richiesta:
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d "{
requests: [
{
policy_target_key: {
target_resource: 'orgunits/03ph8a2z28rz85a'
},
updateMask: {
paths: ['extensionInstallSources']
},
policy_value: {
policy_schema: 'chrome.users.appsconfig.AppExtensionInstallSources',
value: {
extensionInstallSources: ['test1.com', 'test2.com', 'test3.com']
}
}
}
]
}" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
Risposta
La risposta corretta è vuota.
{}
Per tutti i criteri che contengono campi NullableDuration, esistono due versioni. La versione originale accetta solo la stringa come input per NullableDuration e ora è ritirato. Utilizza la versione V2 che sostituisce il tipo di durata con una input numerico. Ad esempio, per impostare la durata massima della sessione utente su 10 minuti dobbiamo inviare la seguente richiesta:
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d "{
requests: [
{
policy_target_key: {
target_resource: 'orgunits/03ph8a2z28rz85a'
},
updateMask: {
paths: ['sessionDurationLimit']
},
policy_value: {
policy_schema: 'chrome.users.SessionLengthV2',
value: {
sessionDurationLimit: {
duration: 10
}
}
}
}
]
}" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
Risposta
La risposta corretta è vuota.
{}
Modifica più criteri contemporaneamente
La batchModify
consente di inviare contemporaneamente più modifiche ai criteri.
Tuttavia, non tutti i criteri possono essere raggruppati insieme. Per ulteriori dettagli,
consulta i criteri di aggiornamento batch.
In questo esempio modificheremo, nella stessa richiesta, due
criteri (chrome.printers.AllowForDevices
e chrome.printers.AllowForUsers
)
per la stessa stampante.
L'esempio seguente riguarda un'unità organizzativa. Una richiesta di gruppo la stessa cosa tranne che per la risorsa target, che avrebbe "groups/" anziché "orgunits/" prima dell'ID.
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policyValue: {
policySchema: "chrome.printers.AllowForDevices",
value: {allowForDevices: true}
},
updateMask: {paths: "allowForDevices"}
},
{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policyValue: {
policySchema: "chrome.printers.AllowForUsers",
value: {allowForUsers: true}
},
updateMask: {paths: "allowForUsers"}
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/C0202nabg/policies/orgunits:batchModify"
Risposta
La risposta corretta è vuota.
{}
Ereditare un valore di criterio in un'unità organizzativa
La batchInherit
consente di modificare lo stato del criterio in un'unità organizzativa da
"applicata localmente" su "ereditato". I valori locali verranno cancellati e il criterio
erediteranno i valori da un'unità organizzativa principale, se applicabile.
Il metodo batchInherit
ti consente anche di inviare più criteri ereditari
richieste contemporaneamente. Tuttavia, non tutti i criteri possono essere raggruppati insieme.
Per ulteriori dettagli,
consulta i criteri di aggiornamento batch.
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly12wd3ox",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policySchema: "chrome.printers.AllowForUsers"
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchInherit"
Risposta
La risposta corretta è vuota.
{}
Elimina un valore di criterio in un gruppo
La batchDelete
consente di eliminare un criterio da un gruppo. I valori locali verranno cancellati.
Il metodo batchDelete
ti consente anche di inviare più eliminazioni di criteri
richieste contemporaneamente. Tuttavia, non tutti i criteri possono essere raggruppati insieme.
Per ulteriori dettagli, vedi
Criteri di aggiornamento collettivo.
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "groups/04fatzly12wd3ox",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policySchema: "chrome.printers.AllowForUsers"
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/groups:batchDelete"
Risposta
La risposta corretta è vuota.
{}
Elenca le priorità di un gruppo
La listGroupPriorityOrdering
consente di elencare la priorità dei gruppi per un'app.
L'ordine degli ID gruppo che vengono restituiti indica la priorità in cui le relative impostazioni saranno applicate all'app; ID successivi i criteri saranno sovrascritti dai criteri i cui ID sono presenti in precedenza nell'elenco.
Tieni presente che le priorità del gruppo sono più alte di quelle dell'unità organizzativa.
In questa richiesta viene restituito l'ordine di priorità di "exampleapp" App utente di Chrome.
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
policyTargetKey: {
additionalTargetKeys: {"app_id":"chrome:exampleapp"}
},
policyNamespace: 'chrome.users.apps'
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/groups:listGroupPriorityOrdering"
Risposta
{
"policyTargetKey": {
"additionalTargetKeys": {
"app_id": "chrome:exampleapp"
}
},
"policyNamespace": "chrome.users.apps",
"groupIds": [
"03ep43zb2k1nodu",
"01t3h5sf2k52kol",
"03q5sasy2ihwnlz"
]
}
Aggiorna l'ordinamento di priorità di un gruppo
La updateGroupPriorityOrdering
consente di aggiornare l'ordine di priorità dei gruppi per un'app.
L'ordine degli ID gruppo nella richiesta indica la priorità in cui le relative impostazioni saranno applicate all'app; ID successivi i criteri saranno sovrascritti dai criteri i cui ID sono presenti in precedenza nell'elenco. La richiesta deve Includono ogni ID gruppo attualmente applicato all'app.
Tieni presente che le priorità del gruppo sono più alte di quelle dell'unità organizzativa.
In questa richiesta impostiamo l'ordinamento di priorità per "exampleapp" App utente di Chrome.
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
policyTargetKey: {
additionalTargetKeys: {"app_id":"chrome:exampleapp"}
},
policyNamespace: 'chrome.users.apps',
groupIds: ['03ep43zb2k1nodu', '01t3h5sf2k52kol', '03q5sasy2ihwnlz']
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/groups:updateGroupPriorityOrdering"
Risposta
La risposta corretta è vuota.
{}
Gestione dei criteri che richiedono l'accettazione
Alcuni schemi delle norme specificano le "notifiche" per determinati valori di un determinato campo che richiedono l'accettazione.
Esempio per il criterio chrome.users.PluginVmAllowd
:
{
"name": "customers/C0202nabg/policySchemas/chrome.users.PluginVmAllowed",
"policyDescription": "Parallels Desktop.",
# ...
"fieldDescriptions": [
{
"field": "pluginVmAllowed",
"description": "N/A",
"knownValueDescriptions": [
{
"value": "true",
"description": "Allow users to use Parallels Desktop."
},
{
"value": "false",
"description": "Do not allow users to use Parallels Desktop."
}
]
},
{
"field": "ackNoticeForPluginVmAllowedSetToTrue",
"description": "This field must be set to true to acknowledge the notice message associated with the field 'plugin_vm_allowed' set to value 'true'. Please see the notices listed with this policy for more information."
}
],
"notices": [
{
"field": "pluginVmAllowed",
"noticeValue": "true",
"noticeMessage": "By enabling Parallels Desktop, you agree to the Parallels End-User License Agreement specified at https://www.parallels.com/about/legal/eula/. Warning: Device identifiers may be shared with Parallels. Please see privacy policy for more details at https://www.parallels.com/about/legal/privacy/. The minimum recommended configuration includes an i5 processor, 16 GB RAM, and 128 GB storage: https://support.google.com/chrome/a/answer/10044480.",
"acknowledgementRequired": true
}
],
"supportUri": "...",
"schemaName": "chrome.users.PluginVmAllowed"
}
Nell'esempio precedente, l'impostazione del valore del campo pluginVmAllowed
su true
è
associata a una notifica con acknowledgementRequired
. Per
se imposti il valore di questo campo su true
, devi inviare una richiesta che specifichi
il campo di accettazione da ackNoticeForPluginVmAllowedSetToTrue
a true
,
altrimenti la tua richiesta riceverà un errore.
In questo esempio, dovrai inviare la seguente richiesta di modifica in batch.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d "{
'requests': [
{
'policyTargetKey': {
'targetResource': 'orgunits/03ph8a2z10ybbh2'
},
'policyValue': {
'policySchema': 'chrome.users.PluginVmAllowed',
'value': {
'pluginVmAllowed': true,
'ackNoticeForPluginVmAllowedSetToTrue': true
}
},
'updateMask': {
'paths': [
'pluginVmAllowed',
'ackNoticeForPluginVmAllowedSetToTrue'
]
}
}
]
}" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
Impostazione dei criteri relativi ai file
Alcuni criteri hanno campi digitati come UploadedFile
. Dovrai caricare il metodo
del file che desideri impostare come valore dei criteri per il server API, per
per ottenere un URL da usare nelle richieste BatchModify
.
In questo esempio imposteremo chrome.users.Wallpaper
caricando un file
JPEG.
Caricamento del file
Richiesta
curl -X POST \
-H "Content-Type: image/jpeg" \
-H "Authorization: Bearer $TOKEN" \
-T "/path/to/the/file" \
"https://chromepolicy.googleapis.com/upload/v1/customers/$CUSTOMER/policies/files:uploadPolicyFile?policy_field=chrome.users.Wallpaper.wallpaperImage"
Risposta
Una risposta corretta deve contenere l'URL per accedere al file:
{
"downloadUri": "https://storage.googleapis.com/chromeos-mgmt/0gjdgxs370bkl6/ChromeOsWallpaper/32ac50ab-b5ae-4bba-afa8-b6b443912897"
}
Impostare il criterio relativo ai file
Richiesta
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
},
policyValue: {
policySchema: "chrome.users.Wallpaper",
value: {
wallpaperImage: {downloadUri: "https://storage.googleapis.com/chromeos-mgmt/0gjdgxs370bkl6/ChromeOsWallpaper/32ac50ab-b5ae-4bba-afa8-b6b443912897"}
}
},
updateMask: {paths: "wallpaperImage"}
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
Risposta
Una risposta corretta deve essere vuota.
{}