네트워크 정책의 코드 샘플

아래 요청은 네트워크 정책을 예로 사용하는 Policy API를 통한 정책 관리를 보여줍니다. 시작하기 전에 Chrome Policy API 개요정책 스키마 가이드를 검토하세요.

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

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

정책 네트워크 서비스

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"

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

{}

인증서 정의

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

이 예에서는 인증서를 정의하고 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"