דוגמאות קוד למדיניות רשת

הבקשות הבאות ממחישות איך מנהלים את המדיניות באמצעות Policy API, באמצעות מדיניות הרשת לדוגמה. לפני שמתחילים, חשוב לעיין בסקירה הכללית על Chrome Policy API ובמדריך לסכימות המדיניות.

כל הבקשות שמוצגות בהמשך משתמשות במשתנים הבאים:

  • $TOKEN – אסימון OAuth 2
  • $CUSTOMER – מספר הלקוח או מספר הלקוח my_customer
  • $ORG_UNIT – מזהה של היחידה הארגונית היעד
  • $NETWORK_ID – מזהה ייחודי של האובייקט שאיתו ברצונך לבצע אינטראקציה

שירות Policy Networks

שירות Policy Networks הוא ממשק API שמסייע לניהול הגדרות הרשת על ידי Chrome Policy Api.

ה-API כולל ארבע נקודות קצה:

הגדרת הרשת

נקודת הקצה 'הגדרת רשת' משמשת ליצירת רשת חדשה. נקודת הקצה הזו משמשת לרשתות 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": "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"