نمونه کد برای خط مشی های برنامه

درخواست‌های زیر مدیریت خط‌مشی را با سیاست API با استفاده از سیاست‌های برنامه به عنوان مثال نشان می‌دهند. قبل از شروع، مطمئن شوید که مرور کلی API خط‌مشی Chrome و راهنمای طرح‌های خط‌مشی را مرور کرده‌اید.

تمام درخواست های ارائه شده در زیر از متغیرهای زیر استفاده می کنند:

  • $TOKEN - نشانه OAuth 2
  • $CUSTOMER - شناسه مشتری یا به معنای واقعی کلمه my_customer

نصب اجباری یک برنامه

نمونه های زیر برای یک واحد سازمانی است. یک درخواست گروه یکسان خواهد بود به جز targetResource که قبل از شناسه به جای "orgunits/" "groups/" دارد.

در اینجا، ما برنامه Google Drawings را برای نصب اجباری تنظیم می کنیم:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "orgunits/04fatzly4jbjho9",
                        additionalTargetKeys: {"app_id": "chrome:mkaakpdehdafacodkgkpghoibnmamcme"}
                        },
                policyValue: {
                        policySchema: "chrome.users.apps.InstallType",
                        value: {appInstallType: "FORCED"}
                        },
                updateMask: {paths: "appInstallType"}
                }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"

یک پاسخ موفق باید خالی باشد:

{}

این مثال برای یک اپلیکیشن کاربر است. یک درخواست جلسه مهمان مدیریت شده یکسان است به جز اینکه طرح خط مشی chrome.devices.managedguest.apps.InstallType خواهد بود. معادل درخواست سیاست Kiosk App به شرح زیر است:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "orgunits/04fatzly4jbjho9",
                        additionalTargetKeys: {"app_id": "chrome:mkaakpdehdafacodkgkpghoibnmamcme"}
                        },
                policyValue: {
                        policySchema: "chrome.devices.kiosk.apps.ForceInstall",
                        value: {forceInstall: false}
                        },
                updateMask: {paths: "forceInstall"}
                }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"

یک پاسخ موفق باید خالی باشد:

{}

حذف یک برنامه

حذف یک برنامه باید در واحد سازمانی که برنامه به صراحت برای مدیریت اضافه شده است انجام شود. هنگام فراخوانی Resolution، فیلد addedSourceKey حاوی واحد سازمانی است که در آن برای مدیریت اضافه شده است. به عبارت دیگر، delete باید فقط برای برنامه‌هایی فراخوانی شود که واحد سازمانی در addedSourceKey با واحد policyTargetKey برابر است.

به منظور حذف یک برنامه (به طور واضح آن را از مدیریت حذف کنید) باید یک درخواست batchInherit ارسال کنید که در آن policySchema طرحی برای نوع برنامه داده شده است، با یک ستاره (*) به جای یک خط مشی خاص. در این مثال، ما برنامه Google Drawings را که در واحد سازمانی "04fatzly4jbjho9" نصب شده است حذف می کنیم:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "orgunits/04fatzly4jbjho9",
                        additionalTargetKeys: {"app_id": "chrome:gbchcmhmhahfdphkhkmpfmihenigjmpp"}
                        },
                policySchema: "chrome.users.apps.*",
                }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchInherit"

یک پاسخ موفق باید خالی باشد:

{}

درخواست‌های حذف برنامه‌های کیوسک و برنامه‌های جلسه مهمان مدیریت‌شده به ترتیب از طرح‌واره‌های chrome.devices.kiosk.apps.\* و chrome.devices.managedguest.apps.\* استفاده می‌کنند.

خط مشی نصب برنامه را برای یک برنامه در یک واحد سازمانی دریافت کنید

برای دریافت خط‌مشی برای یک برنامه خاص، باید هم سیاست و هم شناسه برنامه را در درخواست مشخص کنید. در این مثال، ما در حال خواندن مقدار سیاست InstallType برای برنامه Google Drawings هستیم:

درخواست

  curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        policyTargetKey: {
          targetResource: "orgunits/04fatzly4jbjho9",
          additionalTargetKeys: {"app_id": "chrome:mkaakpdehdafacodkgkpghoibnmamcme"}
        },
        policySchemaFilter: "chrome.users.apps.InstallType"
    }' \
  "https://chromepolicy.googleapis.com/v1/$CUSTOMER/C02l1chq7/policies:resolve"

واکنش

{
  "resolvedPolicies": [
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "app_id": "chrome:mkaakpdehdafacodkgkpghoibnmamcme"
        }
      },
      "value": {
        "policySchema": "chrome.users.apps.InstallType",
        "value": {
          "appInstallType": "FORCED"
        }
      },
      "sourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      },
      "addedSourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      }
    }
  ]
}

خط مشی نصب برنامه را برای همه برنامه‌ها در یک واحد سازمانی دریافت کنید

اگر شناسه برنامه از درخواست در مثال قبلی حذف شود، به درخواستی برای مقدار سیاست InstallType برای همه برنامه‌های تحت آن OU تبدیل می‌شود.

درخواست

  curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        policyTargetKey: {
          targetResource: "orgunits/04fatzly4jbjho9",
        },
        policySchemaFilter: "chrome.users.apps.InstallType"
    }' \
  "https://chromepolicy.googleapis.com/v1/$CUSTOMER/C02l1chq7/policies:resolve"

واکنش

{
  "resolvedPolicies": [
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "app_id": "chrome:mkaakpdehdafacodkgkpghoibnmamcme"
        }
      },
      "value": {
        "policySchema": "chrome.users.apps.InstallType",
        "value": {
          "appInstallType": "FORCED"
        }
      },
      "sourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      },
      "addedSourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      }
    },
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "app_id": "chrome:fhcfdhnmhdkemdfdncjmgnanbekfmbab"
        }
      },
      "value": {
        "policySchema": "chrome.users.apps.InstallType",
        "value": {
          "appInstallType": "ALLOWED"
        }
      },
      "sourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      },
      "addedSourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      }
    },
    ...
  ]
}

فهرست همه خط‌مشی‌های یک برنامه در یک واحد سازمانی

همانطور که می‌توانید شناسه برنامه را از درخواست بازیابی خط‌مشی‌ها برای همه برنامه‌ها حذف کنید، می‌توانید همه خط‌مشی‌ها را برای یک برنامه واحد با استفاده از علامت عام در خط‌مشی دریافت کنید. در این مثال، ما مقادیر همه خط‌مشی‌ها را برای برنامه Google Drawings دریافت می‌کنیم.

درخواست

  curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        policyTargetKey: {
          targetResource: "orgunits/04fatzly4jbjho9",
          additionalTargetKeys: {"app_id": "chrome:mkaakpdehdafacodkgkpghoibnmamcme"}
        },
        policySchemaFilter: "chrome.users.apps.*"
    }' \
  "https://chromepolicy.googleapis.com/v1/$CUSTOMER/C02l1chq7/policies:resolve"

واکنش

{
  "resolvedPolicies": [
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "app_id": "chrome:mkaakpdehdafacodkgkpghoibnmamcme"
        }
      },
      "value": {
        "policySchema": "chrome.users.apps.InstallType",
        "value": {
          "appInstallType": "FORCED"
        }
      },
      "sourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      },
      "addedSourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      }
    },
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "app_id": "chrome:mkaakpdehdafacodkgkpghoibnmamcme"
        }
      },
      "value": {
        "policySchema": "chrome.users.apps.IncludeInChromeWebStoreCollection",
        "value": {
          "includeInCollection": true
        }
      },
      "sourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      },
      "addedSourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      }
    },
    ...
  ]
}

فهرست همه خط‌مشی‌ها برای همه برنامه‌ها در یک واحد سازمانی

شناسه برنامه را می توان حذف کرد و می توان از یک علامت عام در خط مشی استفاده کرد تا تمام تنظیمات برنامه را برای همه برنامه ها تحت یک OU درخواست کند.

درخواست

  curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        policyTargetKey: {
          targetResource: "orgunits/04fatzly4jbjho9"
        },
        policySchemaFilter: "chrome.users.apps.*"
    }' \
  "https://chromepolicy.googleapis.com/v1/$CUSTOMER/C02l1chq7/policies:resolve"

واکنش

{
  "resolvedPolicies": [
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "app_id": "chrome:mkaakpdehdafacodkgkpghoibnmamcme"
        }
      },
      "value": {
        "policySchema": "chrome.users.apps.InstallType",
        "value": {
          "appInstallType": "FORCED"
        }
      },
      "sourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      },
      "addedSourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      }
    },
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "app_id": "chrome:mkaakpdehdafacodkgkpghoibnmamcme"
        }
      },
      "value": {
        "policySchema": "chrome.users.apps.IncludeInChromeWebStoreCollection",
        "value": {
          "includeInCollection": true
        }
      },
      "sourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      },
      "addedSourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      }
    },
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "app_id": "chrome:fhcfdhnmhdkemdfdncjmgnanbekfmbab"
        }
      },
      "value": {
        "policySchema": "chrome.users.apps.InstallType",
        "value": {
          "appInstallType": "ALLOWED"
        }
      },
      "sourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      },
      "addedSourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      }
    },
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "app_id": "chrome:fhcfdhnmhdkemdfdncjmgnanbekfmbab"
        }
      },
      "value": {
        "policySchema": "chrome.users.apps.CertificateManagement",
        "value": {
          "allowAccessToKeys": true
        }
      },
      "sourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      },
      "addedSourceKey": {
        "targetResource": "orgunits/04fatzly4jbjho9"
      }
    },
    ...
  ]
}

پاک کردن Kiosk Appsconfig AutoLaunchApp

به منظور پاک کردن AutoLaunchApp، appId را می توان روی "هیچ" تنظیم کرد.

توجه داشته باشید که هنگام تنظیم appId روی "None"، همه تنظیمات AutoLaunchApp دیگر روی مقادیر پیش فرض خود تنظیم می شوند. هر گونه تنظیمات AutoLaunchApp به غیر از appId که در درخواست ارسال می شود در این مورد نادیده گرفته می شود.

درخواست

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "orgunits/04fatzly4jbjho9"
                        },
                policyValue: {
                        policySchema: "chrome.devices.kiosk.appsconfig.AutoLaunchApp",
                        value: {appId: "None"}
                        },
                updateMask: {paths: "appId"}
                }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"

واکنش

پاسخ موفق خالی است.

{}