Esempi di codice per i criteri di rete

Le richieste seguenti illustrano la gestione dei criteri con l'API Policy che utilizzano i criteri di rete come esempio. Prima di iniziare, consulta la Panoramica dell'API Chrome Policy e la Guida agli schemi dei criteri.

Tutte le richieste presentate di seguito utilizzano le seguenti variabili:

  • $TOKEN - Token OAuth 2
  • $CUSTOMER: ID del cliente o valore letterale my_customer
  • $ORG_UNIT: ID dell'unità organizzativa di destinazione
  • $NETWORK_ID: l'identificatore univoco dell'oggetto con cui vuoi interagire

Servizio Policy Networks

Il servizio Policy Networks è un'API che assiste l'API Chrome Policy nella gestione delle impostazioni di rete.

L'API è composta da quattro endpoint:

Definisci rete

L'endpoint Definisci rete viene utilizzato per creare una nuova rete. Questo endpoint viene utilizzato per le reti Wi-Fi, Ethernet e VPN.

In questo esempio, viene definita una rete Wi-Fi semplice. Per definire una rete più complessa, esamina quali campi sono disponibili nello spazio dei nomi chrome.networks.wifi.

Dettagli policy_schema deve essere presente per tutti i tipi di reti.

curl -H "Content-Type: application/json" -H "Authorization:Bearer $TOKEN"   -d "{target_resource: 'orgunits/$ORG_UNIT', \
    name: 'Network Name', \
    settings: [
      {policy_schema: 'chrome.networks.wifi.AllowForChromeUsers', value: {'allowForChromeUsers': true}}, \
      {policy_schema: 'chrome.networks.wifi.Details',value: {'details': {'security': 'None', 'ssid': 'ssid'}}}
    ]}" \
    "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/networks:defineNetwork"   

Una risposta corretta conterrà la rete creata e l'ID rete che la fa riferimento.

{
  "networkId": "Network Name-Wifi",
  "targetResource": "orgunits/$ORG_UNIT",
  "settings": [
    {
      "policySchema": "chrome.networks.wifi.Details",
      "value": {
        "details": {
          "ssid": "ssid",
          "security": "None",
          "proxySettings": {
            "type": "Direct"
          },
          "allowIpConfiguration": false,
          "allowNameServersConfiguration": false,
          "nameServerSelection": "NAME_SERVERS_ENUM_AUTOMATIC"
        }
      }
    },
    {
      "policySchema": "chrome.networks.wifi.AllowForChromeDevices",
      "value": {
        "allowForChromeDevices": false
      }
    },
    {
      "policySchema": "chrome.networks.wifi.AllowForChromeUsers",
      "value": {
        "allowForChromeUsers": true
      }
    }
  ]
}

Rimuovi rete

L'endpoint Rimuovi rete viene utilizzato per eliminare una rete. Questo endpoint viene utilizzato per le reti Wi-Fi, Ethernet e VPN.

In questo esempio, rimuoviamo una rete Wi-Fi.

curl -H "Content-Type: application/json" -H "Authorization:Bearer $TOKEN" -d "{target_resource: 'orgunits/$ORG_UNIT', network_id: '$NETWORK_ID'}" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/networks:removeNetwork"

Una risposta corretta è vuota.

{}

Definisci certificato

L'endpoint Definisci certificato viene utilizzato per creare un nuovo certificato.

In questo esempio, definiamo un certificato e consentiamo ai dispositivi Chrome di utilizzarlo.

curl -H "Content-Type: application/json" -H "Authorization:Bearer $TOKEN" -d " \
{
  target_resource: 'orgunits/$ORG_UNIT', 
  certificate: 'raw string representation of a .pem or .crt certificate file.', 
  settings: [{
      policy_schema: 'chrome.networks.certificates.AllowForChromeDevices', 
      value: {'allowForChromeDevices': true} 
  }]
}" "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/networks:defineCertificate"

Una risposta corretta conterrà un riferimento al certificato creato (networkId).

{
  "networkId": "{c045f8df-79f1-49d3-92b9-0e61516e6a6b}",
  "targetResource": "orgunits/$ORG_UNIT"
}

Rimuovi certificato

L'endpoint Rimuovi certificato viene utilizzato per rimuovere una definizione di certificato.

In questo esempio, rimuoviamo un certificato.

curl -H "Content-Type: application/json" -H "Authorization:Bearer $TOKEN" -d "{target_resource: 'orgunits/$ORG_UNIT', network_id: '$NETWORK_ID'}" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/networks:removeCertificate"

Una risposta corretta è vuota.

{}

Interazione con le reti salvate

Per interagire con un certificato o una rete, utilizza l'API Policy. Le richieste devono includere una chiave di destinazione aggiuntiva, che rappresenta la risorsa con cui vuoi interagire.

L'omissione di una chiave di destinazione aggiuntiva è accettabile solo in una richiesta di risoluzione. In questo modo, vengono restituite tutte le reti che corrispondono allo spazio dei nomi richiesto.

Puoi ottenere gli schemi di rete completi tramite il servizio schema utilizzando i filtri.
Per visualizzare tutte le impostazioni della VPN, prova a procedere nel seguente modo:

curl -H "Authorization:Bearer $TOKEN" \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policySchemas?filter=chrome.networks.vpn"

Ecco un esempio di aggiunta di Imprivata come autorità di certificazione.

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "orgunits/$ORG_UNIT",
                        additionalTargetKeys: {"network_id": "$NETWORK_ID"}
                        },
                policyValue: {
                        policySchema: "chrome.networks.certificates.AllowForChromeImprivata",
                        value: {allowForChromeImprivata: true}
                        },
                updateMask: {paths: "allowForChromeImprivata"}
       }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"

Ecco un esempio di modifica di una password di rete.

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "orgunits/$ORG_UNIT",
                        additionalTargetKeys: {"network_id": "$NETWORK_ID"}
                        },
                policyValue: {
                        policySchema: "chrome.networks.wifi.Details",
                        value: {details: {
                                  ssid: 'ssid',
                                  security: 'WEP-PSK'
                                  passphrase: 'Your passphrase.'
                               }
                        }
                },
                updateMask: {paths: "details"}
        }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"