סכימות מדיניות

כללי המדיניות של Chrome מיוצגים כסכימות מדיניות על ידי Schema Service API. לכל סכימת מדיניות יש שם ייחודי לזיהוי, הגדרה של הגדרת שדות והסוגים שלהם ותיאור קריא (לבני אדם) של ההגדרות באנגלית.

לדוגמה, בהמשך מוסבר איך Schema Service API מייצג הגדרה שמאפשרת ללחצן 'יציאה' להופיע במגש המערכת של Chrome. ייצוג פשוט של ההגדרה הזו יהיה bool showLogoutButtonInTray. תוכלו ללחוץ על 'Show an example' בהמשך כדי לראות איך ההגדרה הזו מייצגת את Schema Service API.

הצג דוגמה

{
  "name": "customers/C0202nabg/policySchemas/chrome.users.ShowLogoutButton",
  "policyDescription": "Show logout button in tray.", // description of the policy
  "definition": { // definition of the settings (fields names and types)
    "messageType": [
      {
        "name": "ShowLogoutButton",
        "field": [
          {
            "name": "showLogoutButtonInTray", // the setting showLogoutButtonInTray
            "number": 1,
            "label": "LABEL_OPTIONAL",
            "type": "TYPE_BOOL" // the setting showLogoutButtonInTray is of type boolean
          }
        ]
      }
    ]
  },
  "fieldDescriptions": [ // human readable descriptions of the settings and their values
    {
      "field": "showLogoutButtonInTray",
      "knownValueDescriptions": [
        {
          "value": "true",
          "description": "Show logout button in tray." // description for showLogoutButtonInTray=true
        },
        {
          "value": "false",
          "description": "Do not show logout button in tray." // description for showLogoutButtonInTray=false
        }
      ]
    }
  ],
  "schemaName": "chrome.users.ShowLogoutButton" //  unique name to identify the policy
}
  

שמות של סכימות מדיניות

name של סכימה הוא המזהה הייחודי שלה, בפורמט הבא: {namespace}.{leafName}.

בדוגמה שלמעלה, השם המלא של הסכימה הוא chrome.users.ShowLogoutButton. מרחב השמות הוא chrome.users. ושם העלה הוא ShowLogoutButton.

כללי מדיניות בהיקף דומה מקובצים באותו מרחב שמות. לדוגמה, לכל סכימות של מדיניות המשתמש יש קידומת של מרחב שמות chrome.users., ולכל סכימות המדיניות של המדפסות מוגדרת התחילית של מרחב השמות chrome.printers..

מרחבי שמות

מרחב שמות מפתח הרשאה נדרשת של תפקיד אדמין
chrome.users.LEAF_NAME   שירותים > ניהול Chrome > הגדרות > ניהול הגדרות משתמשים
chrome.users.apps.LEAF_NAME key="app_id" שירותים > ניהול Chrome > הגדרות > ניהול הגדרות משתמשים > ניהול הגדרות אפליקציה
chrome.users.appsconfig.LEAF_NAME   שירותים > ניהול Chrome > הגדרות > ניהול הגדרות משתמשים > ניהול הגדרות אפליקציה
chrome.devices.LEAF_NAME   שירותים > ניהול Chrome > הגדרות > ניהול הגדרות של מכשיר ChromeOS
chrome.devices.managedguest.LEAF_NAME   שירותים > ניהול Chrome > הגדרות > ניהול הגדרות של מכשיר ChromeOS
chrome.devices.managedguest.apps.LEAF_NAME key="app_id" שירותים > ניהול Chrome > הגדרות > ניהול הגדרות של מכשיר ChromeOS
chrome.devices.kiosk.LEAF_NAME   שירותים > ניהול Chrome > הגדרות > ניהול הגדרות של מכשיר ChromeOS
chrome.devices.kiosk.apps.LEAF_NAME key="app_id" שירותים > ניהול Chrome > הגדרות > ניהול הגדרות של מכשיר ChromeOS
chrome.devices.kiosk.appsconfig.LEAF_NAME key="app_id" שירותים > ניהול Chrome > הגדרות > ניהול הגדרות של מכשיר ChromeOS
chrome.printers.LEAF_NAME key="printer_id" שירותים > ניהול Chrome > הגדרות > ניהול מדפסות
chrome.printservers.LEAF_NAME key="print_server_id" שירותים > ניהול Chrome > הגדרות > ניהול מדפסות
chrome.networks.globalsettings.LEAF_NAME   שירותים > הגדרות מכשיר משותפות
chrome.networks.wifi.LEAF_NAME key="network_id" שירותים > הגדרות מכשיר משותפות
chrome.networks.ethernet.LEAF_NAME key="network_id" שירותים > הגדרות מכשיר משותפות
chrome.networks.vpn.LEAF_NAME key="network_id" שירותים > הגדרות מכשיר משותפות
chrome.networks.certificates.LEAF_NAME key="network_id" שירותים > הגדרות מכשיר משותפות

מפתחות של סכימת מדיניות

חלק מכללי המדיניות מחייבים הקשר נוסף כדי להציג או לשנות אותם. לדוגמה:

  • כדי לשנות את המדיניות של אפליקציה מסוימת, צריך לציין איזו אפליקציה על ידי אכלוס key="app_id".
  • כדי לשנות את המדיניות של הגדרות המדפסת ביחידה ארגונית, צריך לציין איזו מדפסת על ידי אכלוס key="printer_id".

סכימות המדיניות האלה כוללות קטע additionalTargetKeyNames שמתאר את המפתחות והערכים שיש להעביר בבקשות ה-API.

לפרטים נוספים, ראו דוגמאות קוד.

הצג דוגמה

{
  "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"
}
  

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

חלק ממרחבי השמות שצוינו למעלה קשורים למדיניות האפליקציות, כמו אפליקציות משתמש, אפליקציות קיוסק, אפליקציות לגלישה מנוהלת כאורחים ומדיניות הגדרת התצורה של אפליקציות קיוסק. כללי המדיניות של האפליקציות מצריכים app_id.

app_id נוצר על ידי שילוב סוג האפליקציה ומזהה האפליקציה. לדוגמה:

  • chrome:mkaakpdehdafacodkgkpghoibnmamcme מייצג את אפליקציית Chrome "Google Drawings"
  • android:com.google.android.calendar מייצג את אפליקציית יומן Google ל-Android
  • הסמל web:https://canvas.apps.chrome מייצג את אפליקציית האינטרנט 'לוח הציור'

שדות עם ערכים מרובים

שדות עם התווית LABEL_REPEATED מייצגים שדות עם ערכים מרובים, כמו רשימות או מערכים. אפשר לתת כמה ערכים לשדות האלה. לפרטים נוספים קראו את המאמר דוגמאות קוד.

סטטוס סכימת המדיניות

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

  • בשדה policyApiLifecycleStage מוצג איזה מהשלבים בטבלה הבאה מתאר בצורה הטובה ביותר את הסטטוס הנוכחי של המדיניות.
  • בשדה description מוצגים פרטים נוספים על הסטטוס הנוכחי של המדיניות.
  • בשדה endSupport מוצג התאריך הסופי של התמיכה במדיניות, אם הוגדר כזה.
  • אפשר להגדיר את deprecatedInFavorOf רק אם הערך של policyApiLifecycleStage הוא API_DEPRECATED. מוצגים בו מרחבי השמות המלאים של כללי המדיניות החדשים שהמדיניות הנוכחית הוצאה משימוש בהם.
  • השדה scheduledToDeprecatePolicies תואם ל-depreedInFavorOf. מוצגים בה מרחבי השמות המלאים של כללי המדיניות הישנים שיצאו משימוש בעקבות ההשקה של המדיניות הזו.

שלבים במחזור החיים

במה תיאור
API_UNSPECIFIED הסטטוס הנוכחי של המדיניות לא ידוע. שמור, לא להשתמש.
API_PREVIEW המדיניות עדיין לא פועלת. השלב הזה יכול לעבור אל API_CURRENT או אל API_DEVELOPMENT.
API_DEVELOPMENT המדיניות עדיין לא הסתיימה, וייתכן שנבצע בה שינויים שעלולים לגרום לכשלים. השלב הזה יכול לעבור אל API_CURRENT או אל API_DEPRECATED.
API_CURRENT המדיניות היא בפורמט רשמי, אבל יכול להיות שיהיה שינוי שגורם להפרה. ניתן להעביר את השלב הזה אל API_DEPRECATED.
API_DEPRECATED המדיניות הזו הוצאה משימוש וייתכן שהיא תוסר בעתיד. האדמינים צריכים להפסיק להשתמש במדיניות הזו.

הצג דוגמה

{
  "name": "customers/C0202nabg/policySchemas/chrome.users.OutdatedPolicy",
  "policyDescription": "Just for demo, this is an outdated policy.",
  "definition": {
    "messageType": [
      {
        "name": "OutdatedPolicy",
        "field": [
          {
            "name": "outdatedField",
            "number": 1,
            "label": "LABEL_OPTIONAL",
            "type": "TYPE_BOOL"
          }
        ]
      }
    ]
  },
  "fieldDescriptions": [
    {
      "field": "outdatedField",
      "description": "This is an outdated field"
    }
  ],
  "schemaName": "chrome.users.OutdatedPolicy",
  "policyApiLifecycle": { // policy's current lifecycle status
    "policyApiLifecycleStage": "API_DEPRECATED",
    "description": "This policy is deprecated. Please stop using it",
    "endSupport": {
      "year": 2021,
      "month": 2,
      "day": 29
    }
    "deprecatedInFavorOf": "chrome.users.NewPolicy"
  }
}

{
  "name": "customers/C0202nabg/policySchemas/chrome.users.NewPolicy",
  "policyDescription": "Just for demo, this is a new policy.",
  "definition": {
    "messageType": [
      {
        "name": "NewPolicy",
        "field": [
          {
            "name": "newField",
            "number": 1,
            "label": "LABEL_OPTIONAL",
            "type": "TYPE_BOOL"
          }
        ]
      }
    ]
  },
  "fieldDescriptions": [
    {
      "field": "newField",
      "description": "This is an new field"
    }
  ],
  "schemaName": "chrome.users.NewPolicy",
  "policyApiLifecycle": { // policy's current lifecycle status
    "policyApiLifecycleStage": "API_CURRENT,
    "scheduledToDeprecatePolicies": "chrome.users.OutdatedPolicy"
  }
}
  

הודעות לגבי סכימת המדיניות

לחלק מכללי המדיניות משויך notices, שהערך של acknowledgement_required מוגדר ל-true עבור ערכים מסוימים של שדות מדיניות מסוימים. בכללי המדיניות האלה צריך להגדיר שדה אישור מיוחד ל-true כדי להגדיר את הערך.

פרטים נוספים זמינים במאמר דוגמאות קוד.

פלטפורמות נתמכות

supportedPlatforms הוא רשימה שמציינת שהמדיניות תחול רק על מכשירים או על משתמשים בפלטפורמות האלה. בטבלה הבאה מפורטות כל הפלטפורמות הנתמכות.

פלטפורמה נתמכת

פלטפורמה תיאור
PLATFORM_UNSPECIFIED פלטפורמה לא מוגדרת. שמור, לא להשתמש.
CHROME_OS ChromeOS
CHROME_BROWSER דפדפן Chrome ל-macOS/Windows/Linux
CHROME_BROWSER_FOR_ANDROID דפדפן Chrome ל-Android
CHROME_BROWSER_FOR_IOS דפדפן Chrome ל-iOS

השלבים הבאים