نمونه کد برای سیاست های شبکه

درخواست‌های زیر مدیریت خط‌مشی با API Policy را با استفاده از سیاست‌های شبکه به عنوان مثال نشان می‌دهند. قبل از شروع، مطمئن شوید که مرور کلی API خط‌مشی Chrome و راهنمای طرح‌های خط‌مشی را مرور کرده‌اید.

تمام درخواست های ارائه شده در زیر از متغیرهای زیر استفاده می کنند:

  • $TOKEN - نشانه OAuth 2
  • $CUSTOMER - شناسه مشتری یا به معنای واقعی کلمه my_customer
  • $ORG_UNIT - شناسه واحد سازمانی مورد نظر
  • $NETWORK_ID - شناسه منحصر به فرد شیئی که می خواهید با آن تعامل داشته باشید

سرویس شبکه های خط مشی

سرویس Networks Policy یک API برای کمک به Chrome Policy Api در مدیریت تنظیمات شبکه است.

API از چهار نقطه پایانی تشکیل شده است:

شبکه را تعریف کنید

نقطه پایانی Define Network برای ایجاد یک شبکه جدید استفاده می شود. این نقطه پایانی برای شبکه های WiFi، Ethernet و VPN استفاده می شود.

در این مثال یک شبکه وای فای ساده را تعریف می کنیم. برای تعریف یک شبکه پیچیده تر، بررسی کنید که چه فیلدهایی در فضای نام 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
      }
    }
  ]
}

شبکه را حذف کنید

نقطه پایانی Remove Network برای حذف یک شبکه استفاده می شود. این نقطه پایانی برای شبکه های WiFi، Ethernet و VPN استفاده می شود.

در این مثال، یک شبکه WiFi را حذف می کنیم.

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"

پاسخ موفق خالی است.

{}

گواهی را تعریف کنید

نقطه پایانی Define Certificate برای ایجاد یک گواهی جدید استفاده می شود.

در این مثال، ما یک گواهی تعریف می کنیم و به دستگاه های کروم اجازه می دهیم از آن استفاده کنند.

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

حذف گواهی

نقطه پایانی Remove Certificate برای حذف تعریف گواهی استفاده می شود.

در این مثال، یک گواهی را حذف می کنیم.

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"