عيّنات تعليمات برمجية لسياسات الشبكة

توضّح الطلبات أدناه إدارة السياسات باستخدام Policy API باستخدام سياسات الشبكة كمثال. قبل البدء، احرص على مراجعة نظرة عامة على Chrome Policy API ودليل مخطّطات السياسات.

تستخدم جميع الطلبات المقدَّمة أدناه المتغيّرات التالية:

  • $TOKEN - الرمز المميز لبروتوكول OAuth 2
  • $CUSTOMER - رقم تعريف العميل أو الحرفي my_customer
  • $ORG_UNIT - رقم تعريف الوحدة التنظيمية المستهدَفة
  • $NETWORK_ID - المعرّف الفريد للعنصر الذي تريد التفاعل معه

خدمة شبكات السياسات

Policy Network Service هي واجهة برمجة تطبيقات لمساعدة Chrome Policy Api في إدارة إعدادات الشبكة.

تتألف واجهة برمجة التطبيقات من أربع نقاط نهاية:

تعريف الشبكة

تُستخدم نقطة نهاية "تعريف الشبكة" لإنشاء شبكة جديدة. تُستخدم نقطة النهاية هذه للشبكات WiFi وإيثرنت والشبكات الافتراضية الخاصة.

في هذا المثال، نعرّف شبكة 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": "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
      }
    }
  ]
}

إزالة الشبكة

تُستخدم نقطة نهاية "إزالة الشبكة" لحذف الشبكة. تُستخدم نقطة النهاية هذه للشبكات WiFi وإيثرنت والشبكات الافتراضية الخاصة.

في هذا المثال، نزيل شبكة 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"