Codebeispiele für Netzwerkrichtlinien

Die folgenden Anfragen veranschaulichen die Richtlinienverwaltung mit der Policy API. Als Beispiel werden Netzwerkrichtlinien verwendet. Bevor Sie beginnen, sollten Sie die Übersicht über die Chrome Policy API und die Anleitung für Richtlinienschemas lesen.

Bei allen unten aufgeführten Anfragen werden die folgenden Variablen verwendet:

  • $TOKEN – OAuth 2-Token
  • $CUSTOMER – ID des Kunden oder Literals my_customer
  • $ORG_UNIT – ID der Zielorganisationseinheit
  • $NETWORK_ID: Eindeutige Kennung des Objekts, mit dem Sie interagieren möchten

Policy Networks-Dienst

Der Policy Networks-Dienst ist eine API, die die Chrome Policy API beim Verwalten der Netzwerkeinstellungen unterstützt.

Die API besteht aus vier Endpunkten:

Netzwerk definieren

Der Endpunkt für Netzwerkdefinition wird zum Erstellen eines neuen Netzwerks verwendet. Dieser Endpunkt wird für WLAN-, Ethernet- und VPN-Netzwerke verwendet.

In diesem Beispiel definieren wir ein einfaches WLAN-Netzwerk. Wenn Sie ein komplexeres Netzwerk definieren möchten, sehen Sie sich an, welche Felder im Namespace „chrome.networks.wifi“ verfügbar sind.

Die Details „policy_schema“ müssen für alle Netzwerktypen vorhanden sein.

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"   

Eine erfolgreiche Antwort enthält das erstellte Netzwerk, einschließlich der networkId, die darauf verweist.

{
  "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
      }
    }
  ]
}

Netzwerk entfernen

Der Endpunkt „Remove Network“ wird zum Löschen eines Netzwerks verwendet. Dieser Endpunkt wird für WLAN-, Ethernet- und VPN-Netzwerke verwendet.

In diesem Beispiel entfernen wir ein WLAN.

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"

Eine erfolgreiche Antwort ist leer.

{}

Zertifikat definieren

Der Zertifikatendpunkt definieren wird verwendet, um ein neues Zertifikat zu erstellen.

In diesem Beispiel definieren wir ein Zertifikat und erlauben Chrome-Geräten, es zu verwenden.

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"

Eine erfolgreiche Antwort enthält einen Verweis auf das erstellte Zertifikat (networkId).

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

Zertifikat entfernen

Der Endpunkt zum Entfernen von Zertifikaten wird verwendet, um eine Zertifikatsdefinition zu entfernen.

In diesem Beispiel entfernen wir ein Zertifikat.

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"

Eine erfolgreiche Antwort ist leer.

{}

Mit gespeicherten Netzwerken interagieren

Verwenden Sie die Policy API, um mit einem Zertifikat oder Netzwerk zu interagieren. Anfragen müssen einen zusätzlichen Zielschlüssel enthalten, der die Ressource darstellt, mit der Sie interagieren möchten.

Das Weglassen eines zusätzlichen Zielschlüssels ist nur in einer Auflösungsanfrage zulässig. Dies führt dazu, dass alle Netzwerke, die mit dem angeforderten Namespace übereinstimmen, zurückgegeben werden.

Vollständige Netzwerkschemas können über den Schemadienst mithilfe von Filtern abgerufen werden.
So sehen Sie alle VPN-Einstellungen:

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

Hier ist ein Beispiel für das Hinzufügen von Imprivata als Zertifizierungsstelle.

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"

Hier sehen Sie ein Beispiel für das Ändern eines Netzwerkpassworts.

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"