नेटवर्क की नीतियों के लिए सैंपल कोड

नीचे दिए गए अनुरोध, नीति एपीआई की मदद से नीति को मैनेज करने के बारे में बताते हैं. इसमें यह बताया गया है कि नेटवर्क नीतियों का एक उदाहरण देखें. शुरू करने से पहले, Chrome Policy API की खास जानकारी और नीति के स्कीमा से जुड़ी गाइड.

नीचे दिए गए सभी अनुरोध, इन वैरिएबल का इस्तेमाल करते हैं:

  • $TOKEN - OAuth 2 टोकन
  • $CUSTOMER - ग्राहक का आईडी या लिटरल वैल्यू my_customer
  • $ORG_UNIT - टारगेट किए जाने वाले संगठन की इकाई का आईडी
  • $NETWORK_ID - उस ऑब्जेक्ट का यूनीक आइडेंटिफ़ायर जिसके साथ आपको इंटरैक्ट करना है

नीति से जुड़ी नेटवर्क सेवा

नीति नेटवर्क सेवा, Chrome नीति API (एपीआई) को इन कामों में सहायता करने के लिए एक एपीआई है नेटवर्क सेटिंग मैनेज करने में मदद कर सकता है.

एपीआई के चार एंडपॉइंट होते हैं:

नेटवर्क परिभाषित करें

नेटवर्क एंडपॉइंट तय करें का इस्तेमाल, नया नेटवर्क बनाने के लिए किया जाता है. इस एंडपॉइंट का इस्तेमाल वाई-फ़ाई, ईथरनेट, और वीपीएन नेटवर्क के लिए किया जाता है.

इस उदाहरण में, हमने एक सामान्य वाई-फ़ाई नेटवर्क तय किया है. ज़्यादा जटिल नेटवर्क पर, 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
      }
    }
  ]
}

नेटवर्क हटाएं

नेटवर्क एंडपॉइंट को हटाएं का इस्तेमाल, नेटवर्क को मिटाने के लिए किया जाता है. इस एंडपॉइंट का इस्तेमाल वाई-फ़ाई, ईथरनेट, और वीपीएन नेटवर्क के लिए किया जाता है.

इस उदाहरण में, हम किसी वाई-फ़ाई नेटवर्क को हटा देते हैं.

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 का इस्तेमाल करें. अनुरोधों में एक और टारगेट पासकोड शामिल होना चाहिए. इससे पता चलता है कि आपने किस संसाधन का इस्तेमाल किया आपको इंटरैक्ट करना है.

समाधान के अनुरोध में ही किसी और टारगेट कुंजी को छोड़ा जा सकता है. यह नतीजे के तौर पर, अनुरोध किए गए नेमस्पेस से मेल खाने वाले सभी नेटवर्क लौटाए जाएंगे.

फ़िल्टर का इस्तेमाल करके, स्कीमा सेवा के ज़रिए पूरे नेटवर्क स्कीमा हासिल किए जा सकते हैं.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है वीपीएन की सभी सेटिंग देखने के लिए, यह तरीका आज़माएं:

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

सर्टिफ़िकेट देने वाली संस्था के तौर पर impivata को जोड़ने का एक उदाहरण यहां दिया गया है.

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"