Contoh kode untuk kebijakan jaringan

Permintaan di bawah ini menggambarkan pengelolaan kebijakan dengan Policy API menggunakan kebijakan jaringan sebagai contoh. Sebelum memulai, pastikan Anda meninjau Ringkasan Chrome Policy API dan Panduan skema kebijakan.

Semua permintaan yang ditampilkan di bawah ini menggunakan variabel berikut:

  • $TOKEN - Token OAuth 2
  • $CUSTOMER - ID pelanggan atau my_customer literal
  • $ORG_UNIT - ID unit organisasi target
  • $NETWORK_ID - ID unik objek yang ingin Anda gunakan untuk berinteraksi

Layanan Jaringan Kebijakan

Policy Networks Service adalah API untuk membantu Chrome Policy API dalam mengelola setelan jaringan.

API ini terdiri dari empat endpoint:

Tentukan Jaringan

Endpoint Definisikan Jaringan digunakan untuk membuat jaringan baru. Endpoint ini digunakan untuk jaringan WiFi, Ethernet, dan VPN.

Dalam contoh ini, kami mendefinisikan Jaringan WiFi sederhana. Untuk menentukan jaringan yang lebih kompleks, periksa kolom yang tersedia di namespace chrome.networks.wifi.

Detail policy_schema harus ada untuk semua jenis jaringan.

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"   

Respons yang berhasil akan berisi jaringan yang dibuat, termasuk networkId yang mereferensikannya.

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

Hapus Jaringan

Endpoint Hapus Jaringan digunakan untuk menghapus jaringan. Endpoint ini digunakan untuk jaringan WiFi, Ethernet, dan VPN.

Dalam contoh ini, kami menghapus jaringan WiFi.

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"

Respons yang berhasil kosong.

{}

Tentukan Sertifikat

Titik akhir Definisikan Sertifikat digunakan untuk membuat sertifikat baru.

Dalam contoh ini, kami menentukan sertifikat dan mengizinkan perangkat Chrome untuk menggunakannya.

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"

Respons yang berhasil akan berisi referensi ke sertifikat yang dibuat (networkId).

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

Hapus Sertifikat

Endpoint Remove Certificate digunakan untuk menghapus definisi sertifikat.

Dalam contoh ini, kami menghapus sertifikat.

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"

Respons yang berhasil kosong.

{}

Berinteraksi dengan jaringan yang tersimpan

Untuk berinteraksi dengan sertifikat atau jaringan, gunakan Policy API. Permintaan harus menyertakan kunci target tambahan, yang mewakili resource yang ingin Anda gunakan.

Menghilangkan kunci target tambahan hanya dapat diterima dalam permintaan penyelesaian. Hal ini akan menyebabkan semua jaringan yang cocok dengan namespace yang diminta ditampilkan.

Skema jaringan lengkap dapat diperoleh melalui layanan skema menggunakan filter.
Untuk melihat semua setelan VPN, coba ini:

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

Berikut adalah contoh penambahan Imprivata sebagai certificate authority.

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"

Berikut adalah contoh mengubah {i>password<i} jaringan.

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"