Esempi di codice per i criteri di rete

Le richieste riportate di seguito illustrano la gestione dei criteri con l'API Policy utilizzando criteri di rete, ad esempio. Prima di iniziare, assicurati di esaminare Panoramica dell'API Chrome Policy e Guida agli schemi dei criteri.

Tutte le richieste presentate di seguito utilizzano le seguenti variabili:

  • $TOKEN - Token OAuth 2
  • $CUSTOMER - ID del cliente o 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 in per gestire le 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, definiamo una semplice rete Wi-Fi. Per definire un modello di attribuzione esamina i campi disponibili nello spazio dei nomi chrome.networks.wifi.

Il valore policy_schema dei dettagli 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, incluso il networkId 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 è 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"

La 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, viene rimosso 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"

La 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 desideri interagire.

L'omissione di una chiave di destinazione aggiuntiva è accettabile solo in una richiesta di risoluzione. Questo tutte le reti corrispondenti allo spazio dei nomi richiesto verranno restituite.

È possibile ottenere schemi di rete completi tramite il servizio schemi utilizzando i filtri.
Per vedere tutte le impostazioni VPN, prova questo:

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 della 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"