네트워크 정책의 코드 샘플

아래 요청은 다음을 사용하여 Policy API를 사용하는 정책 관리를 보여줍니다. 네트워크 정책을 살펴보겠습니다 시작하기 전에 먼저 Chrome Policy API 개요정책 스키마 가이드

아래에 표시된 모든 요청은 다음 변수를 사용합니다.

  • $TOKEN - OAuth 2 토큰
  • $CUSTOMER - 고객 또는 리터럴 my_customer의 ID입니다.
  • $ORG_UNIT - 대상 조직 단위의 ID
  • $NETWORK_ID - 상호작용하려는 객체의 고유 식별자입니다.

정책 네트워크 서비스

Policy Networks Service는 네트워크 설정 관리

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"

성공적인 응답은 비어 있습니다.

{}

인증서 정의

인증서 정의 엔드포인트는 새 인증서를 만드는 데 사용됩니다.

이 예에서는 인증서를 정의하고 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를 사용하세요. 요청에는 추가 대상 키를 포함해야 하며, 이는 사용자가 있습니다.

추가 대상 키 누락은 확인 요청에서만 허용됩니다. 이 요청된 네임스페이스와 일치하는 모든 네트워크가 반환됩니다.

전체 네트워크 스키마는 필터를 사용하는 스키마 서비스를 통해 얻을 수 있습니다.
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"