ネットワーク ポリシーのコードサンプル

以下のリクエストは、例としてネットワーク ポリシーを使用した Policy API でのポリシー管理を示しています。始める前に、Chrome Policy API の概要ポリシー スキーマ ガイドをご確認ください。

以下に示すリクエストはすべて、次の変数を使用します。

  • $TOKEN - OAuth 2 トークン
  • $CUSTOMER - 顧客の ID またはリテラル my_customer
  • $ORG_UNIT - 対象の組織部門の ID
  • $NETWORK_ID - 操作するオブジェクトの一意の識別子

ポリシー ネットワーク サービス

ポリシー ネットワーク サービスは、Chrome Policy API によるネットワーク設定の管理を支援する API です。

API は 4 つのエンドポイントで構成されます。

ネットワークを定義する

Generate Network エンドポイントは、新しいネットワークの作成に使用されます。このエンドポイントは 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 が含まれます。

{
  "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 エンドポイントは、ネットワークを削除するために使用されます。 このエンドポイントは 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"
}

証明書を削除

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"