Mã mẫu cho chính sách mạng

Các yêu cầu bên dưới minh hoạ hoạt động quản lý chính sách bằng API Chính sách và lấy chính sách mạng làm ví dụ. Trước khi bắt đầu, hãy nhớ xem bài viết Tổng quan về API Chính sách của Chromehướng dẫn về Giản đồ chính sách.

Tất cả yêu cầu được trình bày bên dưới đều sử dụng các biến sau:

  • $TOKEN – Mã thông báo OAuth 2
  • $CUSTOMER - Mã khách hàng hoặc giá trị cố định my_customer
  • $ORG_UNIT - Mã của đơn vị tổ chức mục tiêu
  • $NETWORK_ID – Giá trị nhận dạng duy nhất của đối tượng bạn muốn tương tác

Dịch vụ mạng chính sách

Dịch vụ mạng chính sách là một API hỗ trợ API chính sách của Chrome trong việc quản lý các chế độ cài đặt mạng.

API này bao gồm 4 điểm cuối:

Xác định mạng

Điểm cuối Xác định mạng được dùng để tạo mạng mới. Điểm cuối này dùng cho các mạng Wi-Fi, Ethernet và VPN.

Trong ví dụ này, chúng ta định nghĩa một Mạng Wi-Fi đơn giản. Để xác định một mạng phức tạp hơn, hãy kiểm tra những trường có sẵn trong không gian tên chrome.networks.wifi.

Bạn phải cung cấp policy_schema chi tiết cho tất cả các loại mạng.

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"   

Phản hồi thành công sẽ chứa mạng đã tạo, bao gồm cả mã mạng tham chiếu đến mạng đó.

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

Xoá mạng

Điểm cuối Xoá mạng dùng để xoá một mạng. Điểm cuối này dùng cho các mạng Wi-Fi, Ethernet và VPN.

Trong ví dụ này, chúng ta loại bỏ một mạng 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"

Không có phản hồi thành công.

{}

Định nghĩa chứng chỉ

Điểm cuối Xác định chứng chỉ được dùng để tạo chứng chỉ mới.

Trong ví dụ này, chúng tôi xác định một chứng chỉ và cho phép các thiết bị Chrome sử dụng chứng chỉ đó.

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"

Phản hồi thành công sẽ chứa tệp tham chiếu đến chứng chỉ đã tạo (networkId).

{
  "networkId": "{c045f8df-79f1-49d3-92b9-0e61516e6a6b}",
  "targetResource": "orgunits/$ORG_UNIT"
}

Xoá chứng chỉ

Điểm cuối Xoá chứng chỉ được dùng để xoá định nghĩa chứng chỉ.

Trong ví dụ này, chúng ta sẽ xoá một chứng chỉ.

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"

Không có phản hồi thành công.

{}

Tương tác với các mạng đã lưu

Để tương tác với chứng chỉ hoặc mạng, hãy sử dụng API chính sách. Các yêu cầu phải bao gồm một khoá mục tiêu bổ sung, đại diện cho tài nguyên mà bạn muốn tương tác.

Việc bỏ qua khoá mục tiêu bổ sung chỉ được chấp nhận trong yêu cầu phân giải. Điều này sẽ khiến tất cả các mạng khớp với không gian tên yêu cầu đều được trả về.

Bạn có thể lấy giản đồ mạng đầy đủ thông qua dịch vụ giản đồ bằng cách dùng các bộ lọc.
Để xem tất cả chế độ cài đặt VPN, hãy thử cách sau:

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

Dưới đây là ví dụ về cách thêm Imprivata làm tổ chức phát hành chứng chỉ.

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"

Dưới đây là ví dụ về cách thay đổi mật khẩu mạng.

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"