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

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

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

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

שירות רשתות של מדיניות

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

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

הגדרת רשת

נקודת הקצה 'הגדרת רשת' משמשת ליצירת רשת חדשה. נקודת הקצה (endpoint) הזו משמשת לרשתות 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
      }
    }
  ]
}

הסרת הרשת

נקודת הקצה (endpoint) 'הסרת רשת' משמשת למחיקת רשת. נקודת הקצה (endpoint) הזו משמשת לרשתות 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"
}

הסרת האישור

נקודת הקצה (endpoint) 'הסרת אישור' משמשת להסרה של הגדרת אישור.

בדוגמה הזו, אנחנו מסירים אישור.

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"