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 ajak berinteraksi

Layanan Jaringan Kebijakan

Layanan Jaringan Kebijakan adalah API untuk membantu Chrome Policy API dalam mengelola pengaturan jaringan.

API ini terdiri dari empat endpoint:

Tentukan Jaringan

Titik akhir Mendefinisikan Jaringan digunakan untuk membuat jaringan baru. Endpoint ini digunakan untuk jaringan Wi-Fi, Ethernet, dan VPN.

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

Policy_schema detail 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 Remove Network digunakan untuk menghapus jaringan. Endpoint ini digunakan untuk jaringan Wi-Fi, Ethernet, dan VPN.

Dalam contoh ini, kita menghapus jaringan 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"

Respons berhasil kosong.

{}

Tentukan Sertifikat

Endpoint Define Certificate digunakan untuk membuat sertifikat baru.

Dalam contoh ini, kita 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 berhasil kosong.

{}

Berinteraksi dengan jaringan tersimpan Anda

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

Menghilangkan kunci target tambahan hanya dapat diterima dalam permintaan penyelesaian. 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 cara menambahkan 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"