דוגמאות קוד למדיניות אפליקציות

הבקשות שבהמשך ממחישות את ניהול המדיניות באמצעות Policy API באמצעות למדיניות של Google Ads כדוגמה. לפני שמתחילים, חשוב להקפיד לעיין סקירה כללית של Chrome Policy API מדריך לסכימות של מדיניות.

כל הבקשות שמוצגות בהמשך משתמשות במשתנים הבאים:

  • $TOKEN – אסימון OAuth 2
  • $CUSTOMER – מזהה הלקוח או my_customer מילולי

התקנת אפליקציה לפי הגדרת האדמין

הדוגמאות הבאות מתייחסות ליחידה ארגונית. בקשת קבוצה תהיה זהה, למעט ה- targetResource, שכולל את המחרוזת "groups/ " במקום "orgunits/ " לפני המזהה.

כאן אנחנו מגדירים התקנה לפי הגדרת האדמין של אפליקציית 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 המדיניות המקבילה של אפליקציית "קיוסק" הבקשה היא:

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"

תגובה מוצלחת צריכה להיות ריקה:

{}

מחיקת אפליקציה

מחיקה של אפליקציה חייבת להתבצע ביחידה הארגונית שבה היא נשלחה שנוספו במפורש לניהול. בזמן הקריאה לפתרון הבעיה, השדה 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 לכל האפליקציות במסגרת ביחידה הארגונית הזאת.

בקשה

  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"
      }
    },
    ...
  ]
}

הצגת רשימה של כל כללי המדיניות לכל האפליקציות ביחידה ארגונית

אפשר להשמיט את מזהה האפליקציה ולהשתמש בתו כללי לחיפוש כדי לבקש את כל הגדרות האפליקציה לכל האפליקציות ביחידה ארגונית.

בקשה

  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"
      }
    },
    ...
  ]
}

ניקוי AutoLaunchApp של אפליקציית Kiosk Appsconfig

כדי לנקות את AutoLaunchApp, אפשר להגדיר את appId כ-None.

חשוב לשים לב שכאשר מגדירים את ה-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"

תשובה

התגובה שהתקבלה ריקה.

{}