아래 요청은 Policy API를 사용한 정책 관리를 보여줍니다. 하기 전에 시작하려면 Chrome Policy API 개요를 검토하세요. 를 참조하세요.
아래에 표시된 모든 요청은 다음 변수를 사용합니다.
$TOKEN
- OAuth 2 토큰$CUSTOMER
- 고객 또는 리터럴my_customer
의 ID입니다.
프린터 정책의 스키마 나열
프린터 정책과 관련된 스키마만 나열하기 위해 filter
이(가) 적용됩니다.
매개변수를 스키마 서비스 목록 요청에 추가합니다. 페이지 매김을 제어할 수 있습니다.
pageSize
및 pageToken
매개변수를 사용하여 결과 얻기
요청
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policySchemas?filter=chrome.printers&pageSize=2"
응답
{
"policySchemas": [
{
"name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForUsers",
"policyDescription": "Allows a printer for users in a given organization.",
"additionalTargetKeyNames": [
{
"key": "printer_id",
"keyDescription": "Id of printer as visible in Admin SDK printers API."
}
],
"definition": {
"messageType": [
{
"name": "AllowForUsers",
"field": [
{
"name": "allowForUsers",
"number": 1,
"label": "LABEL_OPTIONAL",
"type": "TYPE_BOOL"
}
]
}
]
},
"fieldDescriptions": [
{
"field": "allowForUsers",
"description": "Controls whether a printer is allowed for users in a given organization."
}
],
"schemaName": "chrome.printers.AllowForUsers"
},
{
"name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForDevices",
"policyDescription": "Allows a printer for devices in a given organization.",
"additionalTargetKeyNames": [
{
"key": "printer_id",
"keyDescription": "Id of printer as visible in Admin SDK printers API."
}
],
"definition": {
"messageType": [
{
"name": "AllowForDevices",
"field": [
{
"name": "allowForDevices",
"number": 1,
"label": "LABEL_OPTIONAL",
"type": "TYPE_BOOL"
}
]
}
]
},
"fieldDescriptions": [
{
"field": "allowForDevices",
"description": "Controls whether a printer is allowed for devices in a given organization."
}
],
"schemaName": "chrome.printers.AllowForDevices"
}
],
"nextPageToken": "AEbDN_obE8A98T8YhIeU9VCIZhEBylLBwZRQpGu_DUug-mU4bnzcDx30UnO2xMuuImvfVpmeuXRF6VhJ4OmZpZ4H6EaRvu2qMOPxVN_u"
}
스키마 검색
스키마의 filter=
매개변수를 사용하여 복잡한 검색어를 만들 수 있습니다.
서비스 목록 요청입니다. 예를 들어 0의 네임스페이스가 있는
"프린터"라는 단어 이름 및 단어 "devices" 설명에서
다음 값을 필터 name=printers AND description=devices
에 추가합니다.
정책 스키마 나열 방법 알아보기
요청
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policySchemas?filter=name=printers%20AND%20description=devices"
응답
{
"policySchemas": [
{
"name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForDevices",
"policyDescription": "Allows a printer for devices in a given organization.",
"additionalTargetKeyNames": [
{
"key": "printer_id",
"keyDescription": "Id of printer as visible in Admin SDK printers API."
}
],
"definition": {
"messageType": [
{
"name": "AllowForDevices",
"field": [
{
"name": "allowForDevices",
"number": 1,
"label": "LABEL_OPTIONAL",
"type": "TYPE_BOOL"
}
]
}
]
},
"fieldDescriptions": [
{
"field": "allowForDevices",
"description": "Controls whether a printer is allowed for devices in a given organization."
}
],
"schemaName": "chrome.printers.AllowForDevices"
}
]
}
특정 스키마 가져오기
위의 결과에는 지원되는 정책 스키마 목록이 표시됩니다. 각 스키마에는
스키마를 식별하는 name
필드 앞으로는
특정 스키마를 직접 읽을 수 있는 경우에는
스키마 이름을 입력합니다.
chrome.printers.AllowForUsers
스키마의 예를 살펴보겠습니다.
요청
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policySchemas/chrome.printers.AllowForUsers"
응답
{
"name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForUsers",
"policyDescription": "Allows a printer for users in a given organization.",
"additionalTargetKeyNames": [
{
"key": "printer_id",
"keyDescription": "Id of printer as visible in Admin SDK printers API."
}
],
"definition": {
"messageType": [
{
"name": "AllowForUsers",
"field": [
{
"name": "allowForUsers",
"number": 1,
"label": "LABEL_OPTIONAL",
"type": "TYPE_BOOL"
}
]
}
]
},
"fieldDescriptions": [
{
"field": "allowForUsers",
"description": "Controls whether a printer is allowed for users in a given organization."
}
],
"schemaName": "chrome.printers.AllowForUsers"
}
위의 정책 스키마 응답은
chrome.printers.AllowForUsers
정책 알림 필드 additionalTargetKeyNames
입니다.
이 필드는 정책에 따라 추가 키/값을 제공해야 함을 설명합니다.
주의할 필요가 있습니다. 특히 이 정책의 경우
프린터의 식별자를 제공합니다.
정책 값 읽기
특정 프린터에 관한 chrome.printers.AllowForUsers
정책을 확인해 보겠습니다.
요청에서 additionalTargetKeys
필드를 사용하여 프린터 ID를 지정합니다.
조직 단위 또는 그룹에서 정책을 읽을 수 있습니다.
응답에서 sourceKey
필드를 확인합니다. 이 필드는
정책 값의 출처인 조직 단위 또는 그룹 대상
조직 단위에서 발생할 수 있는 문제는 다음과 같습니다.
- 원본 조직 단위가 요청이 있으면 정책이 이 조직 단위에 로컬로 적용됨을 의미합니다.
- 원본 조직 단위가 요청이 있을 경우 정책이 소스 조직 수준에서 상속된다는 의미입니다. 단위.
sourceKey
가 없거나 응답이 비어 있으면 정책을 의미합니다. 설정되어 있지 않으며 기본값 시스템 값을 가집니다.
그룹의 경우 sourceKey는 항상 이전 그룹과 동일합니다. 요청을 처리합니다
다음은 조직 단위의 예입니다. 그룹 요청은 'groups/'를 포함하는 targetResource를 제외하고는 동일합니다. 를 'orgunits/' 를 입력합니다.
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policySchemaFilter: "chrome.printers.AllowForDevices"
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies:resolve"
응답
{
"resolvedPolicies": [
{
"targetKey": {
"targetResource": "orgunits/03ph8a2z1xdnme9"
"additionalTargetKeys": {"printer_id":"0gjdgxs208tpef"}
},
"value": {
"policySchema": "chrome.users.AllowForDevices",
"value": {
"allowForDevices": true
}
},
"sourceKey": {
"targetResource": "orgunits/03ph8a2z3qhz81k"
}
}
]
}
대상 리소스의 모든 항목은
additionalTargetKeys
를 반환합니다. 예를 들어 additionalTargetKeys
가 생략된 경우
지정할 수 있습니다
여러 정책 읽기
별표와 함께 스키마 네임스페이스 (예: chrome.printers.*
)에서
특정 클러스터에서 이 네임스페이스에 속한 모든 정책의 값을
조직 단위 또는 그룹 다음에 대해 자세히 알아보기
정책 스키마.
다음은 조직 단위의 예입니다. 그룹 요청은 'groups/'를 포함하는 targetResource를 제외하고는 동일합니다. 를 'orgunits/' 를 입력합니다.
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
},
policySchemaFilter: "chrome.printers.*"
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies:resolve"
응답
{
"resolvedPolicies": [
{
"targetKey": {
"targetResource": "orgunits/04fatzly4jbjho9",
"additionalTargetKeys": {
"printer_id": "0gjdgxs0xd59y1"
}
},
"value": {
"policySchema": "chrome.printers.AllowForUsers",
"value": {
"allowForUsers": false
}
}
},
{
"targetKey": {
"targetResource": "orgunits/04fatzly4jbjho9",
"additionalTargetKeys": {
"printer_id": "0gjdgxs0xd59y1"
}
},
"value": {
"policySchema": "chrome.printers.AllowForDevices",
"value": {
"allowForDevices": false
}
}
},
//...
],
"nextPageToken": "AEbDN_pFvDeGSbQDkvMxr4UA0Ew7UEUw8aJyw95VPs2en6YxMmFcWQ9OQQEIeSkjnWFCQNyz5GGoOKQGEd50e2z6WqvM2w7sQz6TMxVOBD_4NmEHRWtIJCYymeYXWHIrNH29Ezl1wkeyYBAOKnE="
}
정책 값 수정
정책 스키마 응답에서 볼 수 있듯이 chrome.printers.AllowForUsers
정책은
allowForUsers
라는 필드가 하나 있습니다. 이 필드는 불리언 유형입니다. 예
정책 값은 {allowForUsers: false}
또는
{allowForUsers: true}
이 특별한 경우에는 하나의 필드만 있습니다.
그러나 다른 정책에는 여러 필드가 포함될 수 있습니다.
수정 요청에서 updateMask
를 지정해야 합니다. 마스크 업데이트
이름을 지정할 수 있습니다. 정책이
조직 단위에서 업데이트 마스크를 통해 나열되지 않은 필드는
있습니다 정책이
조직 단위 및 업데이트 마스크를 통해 나열되지 않은 모든 필드는
필요한 경우 상위 조직 단위에서 값을 복사하고
전체 정책이 로컬 단위로 적용됩니다
다음은 조직 단위에 대한 예입니다. 그룹 요청은
'groups/'를 포함하는 targetResource를 제외하고 동일합니다. 를
'orgunits/' 를 입력합니다. 여기서는 다음 프린터 0gjdgxs208tpef
을(를) 허용하지 않습니다.
조직 단위 ID 04fatzly4jbjho9
의 사용자:
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policyValue: {
policySchema: "chrome.printers.AllowForUsers",
value: {allowForUsers: false}
},
updateMask: {paths: "allowForUsers"}
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
응답
성공적인 응답은 비어 있습니다.
{}
목록이나 배열과 같은 다중 값 필드는 'LABEL_REPEATED'로 표시됩니다.
라벨을 지정합니다. 다중 값 필드를 채우려면 다음 JSON 배열 형식을 사용합니다.
[value1, value2, value3, ...]
예를 들어 앱 및 확장 프로그램 패키지의 소스 URL을 'test1.com', 'test2.com' 다음과 같은 요청을 전송해야 합니다.
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d "{
requests: [
{
policy_target_key: {
target_resource: 'orgunits/03ph8a2z28rz85a'
},
updateMask: {
paths: ['extensionInstallSources']
},
policy_value: {
policy_schema: 'chrome.users.appsconfig.AppExtensionInstallSources',
value: {
extensionInstallSources: ['test1.com', 'test2.com', 'test3.com']
}
}
}
]
}" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
응답
성공적인 응답은 비어 있습니다.
{}
NullableDuration 필드가 포함된 모든 정책에는 두 가지 버전이 있습니다. 원래 버전에서는 NullableDuration의 입력으로 문자열만 허용되며 지원 중단되었습니다. 길이 유형을 숫자 입력입니다. 예: 최대 사용자 세션 길이를 10분으로 설정 다음 요청을 보내야 합니다.
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d "{
requests: [
{
policy_target_key: {
target_resource: 'orgunits/03ph8a2z28rz85a'
},
updateMask: {
paths: ['sessionDurationLimit']
},
policy_value: {
policy_schema: 'chrome.users.SessionLengthV2',
value: {
sessionDurationLimit: {
duration: 10
}
}
}
}
]
}" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
응답
성공적인 응답은 비어 있습니다.
{}
한 번에 여러 정책 수정하기
batchModify
메서드를 사용하면 여러 정책 수정사항을 동시에 전송할 수 있습니다.
그러나 모든 정책을 일괄로 처리할 수는 없습니다. 자세한 내용은
일괄 업데이트 정책을 참조하세요.
이 예에서는 동일한 요청에서 두 개의 다른
정책 (chrome.printers.AllowForDevices
및 chrome.printers.AllowForUsers
)
동일한 프린터의 경우
다음은 조직 단위의 예입니다. 그룹 요청은 'groups/'를 포함하는 targetResource를 제외하고는 동일합니다. 를 'orgunits/' 를 입력합니다.
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policyValue: {
policySchema: "chrome.printers.AllowForDevices",
value: {allowForDevices: true}
},
updateMask: {paths: "allowForDevices"}
},
{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policyValue: {
policySchema: "chrome.printers.AllowForUsers",
value: {allowForUsers: true}
},
updateMask: {paths: "allowForUsers"}
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/C0202nabg/policies/orgunits:batchModify"
응답
성공적인 응답은 비어 있습니다.
{}
조직 단위의 정책 값 상속
batchInherit
메서드를 사용하면
'로컬 단위로 적용됨' '상속됨'으로 전환됩니다. 로컬 값이 삭제되고 정책이
해당하는 경우 상위 조직 단위의 값이 상속됩니다.
batchInherit
메서드를 사용하면 여러 정책 상속을 전송할 수도 있습니다.
여러 번 요청을 동시에
실행할 수 있습니다 그러나 모든 정책을 일괄로 처리할 수는 없습니다.
자세한 내용은
일괄 업데이트 정책을 참조하세요.
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly12wd3ox",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policySchema: "chrome.printers.AllowForUsers"
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchInherit"
응답
성공적인 응답은 비어 있습니다.
{}
그룹의 정책 값 삭제
batchDelete
메서드를 사용하면 그룹에서 정책을 삭제할 수 있습니다. 로컬 값이 삭제됩니다.
batchDelete
메서드를 사용하면 여러 정책 삭제를 전송할 수도 있습니다.
여러 번 요청을 동시에
실행할 수 있습니다 그러나 모든 정책을 일괄로 처리할 수는 없습니다.
자세한 내용은
일괄 업데이트 정책.
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "groups/04fatzly12wd3ox",
additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
},
policySchema: "chrome.printers.AllowForUsers"
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/groups:batchDelete"
응답
성공적인 응답은 비어 있습니다.
{}
그룹의 우선순위 나열
listGroupPriorityOrdering
메서드를 사용하면 앱에 대한 그룹의 우선순위를 나열할 수 있습니다.
반환되는 그룹 ID의 순서는 설정이 앱에 적용됩니다. '나중 ID' 정책이 ID가 목록 앞부분에 있는 정책이 우선 적용됩니다.
그룹 우선순위는 조직 단위 우선순위보다 높습니다.
이 요청에서는 'exampleapp'의 우선순위 순서를 반환합니다. Chrome 사용자 앱
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
policyTargetKey: {
additionalTargetKeys: {"app_id":"chrome:exampleapp"}
},
policyNamespace: 'chrome.users.apps'
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/groups:listGroupPriorityOrdering"
응답
{
"policyTargetKey": {
"additionalTargetKeys": {
"app_id": "chrome:exampleapp"
}
},
"policyNamespace": "chrome.users.apps",
"groupIds": [
"03ep43zb2k1nodu",
"01t3h5sf2k52kol",
"03q5sasy2ihwnlz"
]
}
그룹의 우선순위 순서 업데이트하기
updateGroupPriorityOrdering
메서드를 사용하면 앱 그룹의 우선순위를 업데이트할 수 있습니다.
요청에서 그룹 ID의 순서는 설정이 앱에 적용됩니다. '나중 ID' 정책이 ID가 목록 앞부분에 있는 정책이 우선 적용됩니다. 요청은 현재 앱에 적용된 모든 그룹 ID를 포함합니다.
그룹 우선순위는 조직 단위 우선순위보다 높습니다.
이 요청에서는 'exampleapp'의 우선순위를 설정합니다. Chrome 사용자 앱
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
policyTargetKey: {
additionalTargetKeys: {"app_id":"chrome:exampleapp"}
},
policyNamespace: 'chrome.users.apps',
groupIds: ['03ep43zb2k1nodu', '01t3h5sf2k52kol', '03q5sasy2ihwnlz']
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/groups:updateGroupPriorityOrdering"
응답
성공적인 응답은 비어 있습니다.
{}
확인이 필요한 정책 처리
일부 정책 스키마는 '알림'을 지정합니다. 특정 필드의 특정 값에 대한 이메일 알림을 받을 수 있습니다
chrome.users.PluginVmAllowd
정책의 예는 다음과 같습니다.
{
"name": "customers/C0202nabg/policySchemas/chrome.users.PluginVmAllowed",
"policyDescription": "Parallels Desktop.",
# ...
"fieldDescriptions": [
{
"field": "pluginVmAllowed",
"description": "N/A",
"knownValueDescriptions": [
{
"value": "true",
"description": "Allow users to use Parallels Desktop."
},
{
"value": "false",
"description": "Do not allow users to use Parallels Desktop."
}
]
},
{
"field": "ackNoticeForPluginVmAllowedSetToTrue",
"description": "This field must be set to true to acknowledge the notice message associated with the field 'plugin_vm_allowed' set to value 'true'. Please see the notices listed with this policy for more information."
}
],
"notices": [
{
"field": "pluginVmAllowed",
"noticeValue": "true",
"noticeMessage": "By enabling Parallels Desktop, you agree to the Parallels End-User License Agreement specified at https://www.parallels.com/about/legal/eula/. Warning: Device identifiers may be shared with Parallels. Please see privacy policy for more details at https://www.parallels.com/about/legal/privacy/. The minimum recommended configuration includes an i5 processor, 16 GB RAM, and 128 GB storage: https://support.google.com/chrome/a/answer/10044480.",
"acknowledgementRequired": true
}
],
"supportUri": "...",
"schemaName": "chrome.users.PluginVmAllowed"
}
위의 예에서 pluginVmAllowed
필드의 값을 true
로 설정하는 것은 다음과 같습니다.
acknowledgementRequired
가 있는 알림과 연결됩니다. 올바르게
이 필드 값을 true
로 설정하면
확인 필드 ackNoticeForPluginVmAllowedSetToTrue
를 true
로,
그렇지 않으면 요청에 오류가 발생합니다.
이 예시에서는 다음과 같은 일괄 수정 요청을 전송해야 합니다.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d "{
'requests': [
{
'policyTargetKey': {
'targetResource': 'orgunits/03ph8a2z10ybbh2'
},
'policyValue': {
'policySchema': 'chrome.users.PluginVmAllowed',
'value': {
'pluginVmAllowed': true,
'ackNoticeForPluginVmAllowedSetToTrue': true
}
},
'updateMask': {
'paths': [
'pluginVmAllowed',
'ackNoticeForPluginVmAllowedSetToTrue'
]
}
}
]
}" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
파일 정책 설정
일부 정책에는 UploadedFile
유형의 필드가 있으므로
해당 정책 값으로 설정할 파일을
BatchModify
요청에서 사용할 URL을 가져옵니다.
이 예에서는 chrome.users.Wallpaper
JPEG 파일 형식으로 저장합니다.
파일 업로드
요청
curl -X POST \
-H "Content-Type: image/jpeg" \
-H "Authorization: Bearer $TOKEN" \
-T "/path/to/the/file" \
"https://chromepolicy.googleapis.com/upload/v1/customers/$CUSTOMER/policies/files:uploadPolicyFile?policy_field=chrome.users.Wallpaper.wallpaperImage"
응답
성공 응답에는 파일에 액세스할 수 있는 URL이 포함되어야 합니다.
{
"downloadUri": "https://storage.googleapis.com/chromeos-mgmt/0gjdgxs370bkl6/ChromeOsWallpaper/32ac50ab-b5ae-4bba-afa8-b6b443912897"
}
파일 정책 설정
요청
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
requests: [{
policyTargetKey: {
targetResource: "orgunits/04fatzly4jbjho9",
},
policyValue: {
policySchema: "chrome.users.Wallpaper",
value: {
wallpaperImage: {downloadUri: "https://storage.googleapis.com/chromeos-mgmt/0gjdgxs370bkl6/ChromeOsWallpaper/32ac50ab-b5ae-4bba-afa8-b6b443912897"}
}
},
updateMask: {paths: "wallpaperImage"}
}]
}' \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"
응답
성공 응답은 비어 있어야 합니다.
{}