네트워크 정책의 코드 샘플

아래 요청은 다음을 사용하여 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"