Przykładowy kod dla zasad sieci

W poniższych żądaniach poniżej przedstawiono zarządzanie zasadami za pomocą interfejsu Policy API z wykorzystaniem zasad sieciowych. Zanim zaczniesz, zapoznaj się z omówieniem interfejsu Chrome Policy API i przewodnikiem po schematach zasad.

Wszystkie żądania przedstawione poniżej korzystają z tych zmiennych:

  • $TOKEN – token OAuth 2
  • $CUSTOMER – identyfikator klienta lub literał my_customer.
  • $ORG_UNIT – identyfikator docelowej jednostki organizacyjnej
  • $NETWORK_ID – unikalny identyfikator obiektu, z którym chcesz wejść w interakcję.

Usługa sieci zasad

Policy Networks Service to interfejs API, który pomaga interfejsowi Chrome Policy API w zarządzaniu ustawieniami sieci.

Interfejs API składa się z 4 punktów końcowych:

Zdefiniuj sieć

Określ punkt końcowy sieci służy do tworzenia nowej sieci. Ten punkt końcowy jest używany w sieciach Wi-Fi, Ethernet i VPN.

W tym przykładzie definiujemy prostą sieć Wi-Fi. Aby zdefiniować bardziej złożoną sieć, sprawdź, jakie pola są dostępne w przestrzeni nazw chrome.networks.wifi.

W przypadku wszystkich typów sieci wymagany jest parametr details policy_schema.

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"   

Pomyślna odpowiedź będzie zawierać utworzoną sieć, w tym identyfikator sieci, który się do niej odwołuje.

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

Usuń sieć

Punkt końcowy Usuń sieć służy do usuwania sieci. Ten punkt końcowy jest używany w sieciach Wi-Fi, Ethernet i VPN.

W tym przykładzie usuwamy sieć 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"

Pomyślna odpowiedź jest pusta.

{}

Zdefiniuj certyfikat

Punkt końcowy Zdefiniuj certyfikat służy do tworzenia nowego certyfikatu.

W tym przykładzie definiujemy certyfikat i zezwalamy na jego używanie urządzeniom z Chrome.

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"

Pomyślna odpowiedź będzie zawierać odwołanie do utworzonego certyfikatu (networkId).

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

Usuń certyfikat

Punkt końcowy Usuń certyfikat służy do usuwania definicji certyfikatu.

W tym przykładzie usuwamy certyfikat.

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"

Pomyślna odpowiedź jest pusta.

{}

Interakcja z zapisanymi sieciami

Aby korzystać z certyfikatu lub sieci, użyj interfejsu Policy API. Żądania muszą zawierać dodatkowy klucz docelowy reprezentujący zasób, z którym chcesz wchodzić w interakcję.

Pominięcie dodatkowego klucza docelowego jest dopuszczalne tylko w żądaniu rozwiązania. Spowoduje to zwrócenie wszystkich sieci pasujących do żądanej przestrzeni nazw.

Pełne schematy sieci można uzyskać za pomocą usługi schematów za pomocą filtrów.
Aby zobaczyć wszystkie ustawienia VPN, wykonaj te czynności:

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

Oto przykład dodania Imprivata jako urzędu certyfikacji.

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"

Oto przykład zmiany hasła do sieci.

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"