ตัวอย่างโค้ดสําหรับนโยบายเครือข่าย

คำขอด้านล่างแสดงการจัดการนโยบายด้วย Policy API โดยใช้นโยบายเครือข่ายเป็นตัวอย่าง ก่อนเริ่มต้น โปรดอ่านภาพรวมของ Chrome Policy API และคู่มือสคีมานโยบาย

คำขอทั้งหมดที่แสดงอยู่ด้านล่างใช้ตัวแปรต่อไปนี้

  • $TOKEN - โทเค็น OAuth 2
  • $CUSTOMER - รหัสลูกค้าหรือลิเทอรัล my_customer
  • $ORG_UNIT - รหัสของหน่วยขององค์กรเป้าหมาย
  • $NETWORK_ID - ตัวระบุเฉพาะของออบเจ็กต์ที่คุณต้องการโต้ตอบด้วย

บริการเครือข่ายนโยบาย

บริการ Policy Networks คือ API ที่จะช่วย Chrome Policy API ในการจัดการการตั้งค่าเครือข่าย

API ประกอบด้วยปลายทาง 4 รายการดังนี้

กำหนดเครือข่าย

ระบบจะใช้ปลายทาง "กำหนดเครือข่าย" ในการสร้างเครือข่ายใหม่ ปลายทางนี้ใช้สำหรับเครือข่าย Wi-Fi, อีเทอร์เน็ต และ VPN

ในตัวอย่างนี้ เรานิยามเครือข่าย Wi-Fi ที่ไม่ซับซ้อน หากต้องการกำหนดเครือข่ายที่ซับซ้อนยิ่งขึ้น ให้ตรวจสอบช่องที่มีอยู่ในเนมสเปซ chrome.networks.wifi

ต้องระบุ 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"   

การตอบกลับที่สำเร็จจะมีเครือข่ายที่สร้างขึ้น รวมถึง networkId ที่อ้างอิงเครือข่ายดังกล่าว

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

นำเครือข่ายออก

ใช้ปลายทางการนำเครือข่ายออกเพื่อลบเครือข่าย ปลายทางนี้ใช้สำหรับเครือข่าย Wi-Fi, อีเทอร์เน็ต และ VPN

ในตัวอย่างนี้ เราจะนำเครือข่าย 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"

การตอบกลับที่สำเร็จว่างเปล่า

{}

กำหนดใบรับรอง

ระบบจะใช้ปลายทาง "กำหนดใบรับรอง" ในการสร้างใบรับรองใหม่

ในตัวอย่างนี้ เรากำหนดใบรับรอง และอนุญาตให้อุปกรณ์ 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"

การตอบกลับที่สำเร็จจะมีการอ้างอิงไปยังใบรับรองที่สร้างขึ้น (networkId)

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

นำใบรับรองออก

ระบบจะใช้ปลายทางการนำใบรับรองออกเพื่อนำคำจำกัดความใบรับรองออก

ในตัวอย่างนี้ เราจะนำใบรับรองออก

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"

การตอบกลับที่สำเร็จว่างเปล่า

{}

การโต้ตอบกับเครือข่ายที่บันทึกไว้

หากต้องการโต้ตอบกับใบรับรองหรือเครือข่าย ให้ใช้ Policy API คำขอต้องมีคีย์เป้าหมายเพิ่มเติมที่แสดงถึงทรัพยากรที่คุณต้องการโต้ตอบด้วย

การละเว้นคีย์เป้าหมายเพิ่มเติมจะทำได้เฉพาะในคำขอแก้ไขเท่านั้น ซึ่งจะส่งผลให้เครือข่ายทั้งหมดตรงกับเนมสเปซที่ขอ

สคีมาเครือข่ายแบบเต็มจะรับผ่านบริการสคีมาได้โดยใช้ตัวกรอง
หากต้องการดูการตั้งค่า VPN ทั้งหมด ให้ลองทำดังนี้

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

ตัวอย่างการเพิ่ม Imprivata เป็นผู้ออกใบรับรอง

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"

ต่อไปนี้คือตัวอย่างการเปลี่ยนรหัสผ่านเครือข่าย

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"