以下のリクエストは、ネットワーク ポリシーを例として、Policy API によるポリシー管理を示しています。始める前に、Chrome Policy API の概要とポリシー スキーマ ガイドを確認してください。
以下に示すリクエストでは、次の変数を使用します。
$TOKEN
- OAuth 2 トークン$CUSTOMER
- 顧客の ID またはリテラルmy_customer
$ORG_UNIT
- ターゲット組織部門の ID$NETWORK_ID
- 操作するオブジェクトの一意の識別子
Policy Networks Service
Policy Networks Service は、Chrome Policy API がネットワーク設定を管理する際に使用する API です。
この API は次の 4 つのエンドポイントで構成されています。
ネットワークを定義する
ネットワーク定義エンドポイントは、新しいネットワークの作成に使用されます。このエンドポイントは、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
}
}
]
}
ネットワークの削除
ネットワークの削除エンドポイントは、ネットワークの削除に使用されます。このエンドポイントは、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"
成功した場合のレスポンスは空です。
{}
証明書を定義する
Define Certificate エンドポイントは、新しい証明書の作成に使用されます。
この例では、証明書を定義し、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 を使用します。リクエストには、操作するリソースを表す追加のターゲットキーを含める必要があります。
追加のターゲットキーを省略できるのは、解決リクエストの場合のみです。これにより、リクエストされた Namespace に一致するすべてのネットワークが返されます。
完全なネットワーク スキーマは、フィルタを使用してスキーマ サービスから取得できます。
すべての 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"