Приведенные ниже запросы иллюстрируют управление политиками с помощью Policy API на примере сетевых политик. Прежде чем начать, обязательно ознакомьтесь с обзором Chrome Policy API и руководством по схемам политик .
Все запросы, представленные ниже, используют следующие переменные:
-
$TOKEN
— токен OAuth 2. -
$CUSTOMER
— Идентификатор клиента или буквальныйmy_customer
-
$ORG_UNIT
— идентификатор целевого организационного подразделения. -
$NETWORK_ID
— Уникальный идентификатор объекта, с которым вы хотите взаимодействовать.
Служба сетевых политик
Служба Policy Networks — это API, помогающий Chrome Policy Api управлять настройками сети.
API состоит из четырех конечных точек:
Определить сеть
Конечная точка Определить сеть используется для создания новой сети. Эта конечная точка используется для сетей Wi-Fi, Ethernet и 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
}
}
]
}
Удалить сеть
Конечная точка «Удалить сеть» используется для удаления сети. Эта конечная точка используется для сетей Wi-Fi, Ethernet и 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"
}
Удалить сертификат
Конечная точка удаления сертификата используется для удаления определения сертификата.
В этом примере мы удаляем сертификат.
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"
Успешный ответ пуст.
{}
Взаимодействие с сохраненными сетями
Для взаимодействия с сертификатом или сетью используйте 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"