תמיכה בהגדרות מנוהלות

חלק מהאפליקציות שמיועדות לארגונים כוללות הגדרות מובנות שנקראות הגדרות מנוהלות, שאדמינים ב-IT יכולים להגדיר מרחוק. לדוגמה, ייתכן שלאפליקציה תהיה אפשרות לסנכרן נתונים רק כשהמכשיר מחובר ל-Wi-Fi. חובה לאפשר לאדמינים ב-IT לציין הגדרות מנוהלות ולהחיל אותן על מכשירים, בכל קבוצות הפתרונות. יש שתי דרכים שבהן אפשר לתמוך בהגדרות מנוהלות במסוף ה-EMM:

  • אפשר ליצור ממשק משתמש משלכם ולהחיל את ההגדרות דרך managedConfiguration ב-ApplicationPolicy.
  • מוסיפים את ה-iframe של ההגדרות המנוהלות למסוף (ההוראות מפורטות בהמשך) ומחילים את ההגדרות דרך managedConfigurationTemplate ב-ApplicationPolicy.


iframe של הגדרות מנוהלות הוא ממשק משתמש שאפשר להטמיע, שמאפשר למנהלים ב-IT לשמור, לערוך ולמחוק את הגדרות התצורה המנוהלת של אפליקציה. לדוגמה, ניתן לך להציג לחצן (או רכיב דומה של ממשק המשתמש) בפרטים או בדף ההגדרות של האפליקציה שפותחת את ה-iframe.

פעולות שזמינות לאדמינים ב-IT מה-iframe

mcm iframe
איור 1. דוגמה ל-iframe של הגדרות מנוהלות ל-Gmail.

הגדרה ושמירה של פרופילי הגדרות אישיות

רכיב ה-iframe מאחזר ומציג את הסכימה של ההגדרות המנוהלות של אפליקציה מסוימת. במסגרת ה-iframe, אדמין ב-IT יכול להגדיר את ההגדרות ולשמור אותן כפרופיל תצורה. בכל פעם שאדמין ב-IT שומר פרופיל תצורה חדש, ה-iframe מחזיר מזהה ייחודי שנקרא mcmId. כך אדמינים ב-IT יכולים ליצור כמה פרופילים לאותה אפליקציה.

עריכת פרופילים של הגדרות אישיות

ה-iframe יכול להציג פרופילי הגדרות שמורים. אדמינים ב-IT יכולים לעדכן את ההגדרות בפרופיל ולשמור את השינויים.

מחיקת פרופילים של הגדרות אישיות

אדמינים ב-IT יכולים למחוק פרופילים של הגדרות אישיות מה-iframe. התכונה הזו מושבתת כברירת מחדל.

הוספת ה-iframe למסוף

יצירת אסימון אינטרנט

משתמשים ב-enterprises.webTokens.create כדי ליצור אסימון אינטרנט שמזהה את הארגון, ומגדירים את iframeFeature כ-MANAGED_CONFIGURATIONS. כשמעבדים את ה-iframe במסוף, צריך לכלול את האסימון שמוחזר יחד עם פרמטרים אחרים.

עיבוד ה-iframe

הנה דוגמה לאופן שבו iframe של הגדרות מנוהלות:

<script src="https://apis.google.com/js/api.js"></script>
<div id="container" style="width: 1000px; height: 1000px"></div>
<script>
  gapi.load('gapi.iframes', function() {
    var options = {
      'url': 'https://play.google.com/managed/mcm?token=web_token&packageName=app_package_name',
      'where': document.getElementById('container'),
      'attributes': { style: 'height:1000px', scrolling: 'yes'}
    }

    var iframe = gapi.iframes.getContext().openChild(options);
  });
</script>

פרמטרים של כתובת אתר

בטבלה הבאה מפורטים כל הפרמטרים הזמינים לכתובת ה-URL של ה-iframe.

פרמטרחובהתיאור
token כן האסימון הוחזר מ-Enterprises.createWebToken.
packageName כן מזהה המוצר של האפליקציה. לדוגמה, com.google.android.gm.
mcmId לא המזהה של פרופיל הגדרות מנוהלות.
canDelete לא אם הערך TRUE, מופעל לחצן ב-iframe שמאפשר לאדמינים ב-IT למחוק את פרופיל ההגדרות האישיות. אם FALSE (ערך ברירת המחדל), הלחצן מושבת.
locale לא תג BCP 47 בפורמט תקין שמשמש להתאמה לשוק המקומי של התוכן ב-iframe. אם לא צוין, ערך ברירת המחדל הוא en_US.

אירועי iframe

בנוסף, צריך לטפל באירועים הבאים כחלק מהשילוב.

אירועתיאור
onconfigupdated המשתמש מעדכן פרופיל קיים של הגדרות מנוהלות, או יוצר פרופיל חדש. הפעולה הזו תחזיר אובייקט שמכיל:
{
  "mcmId": The ID of the managed configurations profile.
  "name": The name of the updated or newly created managed configurations profile.
}
onconfigdeleted המשתמש ימחק פרופיל קיים של הגדרות מנוהלות. הפעולה הזו מחזירה אובייקט שמכיל:
{
  "mcmId": The ID of the managed configurations profile.
}

הדוגמה הבאה מראה איך להאזין ל-onconfigupdated, כדוגמה:

iframe.register('onconfigupdated', function(event) {
  console.log(event);
}, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER);

עדכונים לסכימת הגדרות מנוהלות של אפליקציה

אם המפתח מעדכן את הסכימה המנוהלת של האפליקציה, פרופילי ההגדרות השמורים מתעדכנים באופן אוטומטי. לדוגמה, אם המפתח יסיר אפשרות, האפשרות תוסר מכל פרופילי ההגדרות הקיימים של האפליקציה. אם המפתח יוסיף אפשרות, ערך ברירת המחדל של האפשרות (שמוגדר על ידי המפתח) יתווסף לכל פרופילי ההגדרות הקיימים של האפליקציה.

החלת פרופילים של הגדרות על מדיניות

כל פרופיל הגדרות אישיות נשמר בתור mcmId ייחודי. כדי להחיל פרופיל הגדרות על מדיניות, צריך לציין את הערך mcmId ב-managedConfigurationTemplate.


הסבר על התנהגות בחירה/ביטול בחירה

ה-iframe של ההגדרות המנוהלות מאפשר עכשיו לאדמינים ב-IT לבטל באופן מפורש את ההגבלות על אפליקציות שקשורות להגדרות מנוהלות, כשהן לא צריכות אותן. מדובר בשינוי מהתנהגות קודמת, והוא עשוי להשפיע על ההגבלות שיישלחו לאפליקציה בהתאם לבחירה של האדמין.

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

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

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

לדוגמה, באמצעות הסכימה הבאה של הגבלת אפליקציות:

"restrictions": [{
    "key": "bool_key",
    "restrictionType": "bool",
    "defaultValue": {
        "type": "bool",
        "valueBool": false
    }
}]

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

"restrictions": [{
    "key": "bool_key",
    "restrictionType": "bool",
    "value": {
        "type": "bool",
        "valueBool": false
    }
}]

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

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

לדוגמה, באמצעות הסכימה הבאה של הגבלת אפליקציות:

"restrictions": [{
    "key": "bool_key",
    "restrictionType": "bool"
    // defaultValue absent.
}]

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

"restrictions": [
    // Empty
]

שימוש בחבילות בתוך הסכימה

הקטע הזה רלוונטי להגבלות של אפליקציות חבילה:

הגבלה על אפליקציה צאצא אחת לפחות, עם ערך ברירת מחדל בהגבלת אפליקציה של חבילה

אם בהגבלת האפליקציה bundle מוגדרת ערך ברירת מחדל להגבלה אחת לפחות של אפליקציות צאצא מסוג bool, בחירה, מספר שלם, בחירה מרובה או מחרוזת, ערך ברירת המחדל יוחל כערך ברירת המחדל של ההגבלה על האפליקציות, ואלה שאין להם ערכי ברירת מחדל יוחרגו כשאדמינים ישמרו את ההגדרה המנוהלת בלי להחיל שינויים.

"restrictions": [{
    "key": "bundle_key",
    "restrictionType": "bundle",
    "nestedRestriction": [{
            "key": "bool_key_1",
            "restrictionType": "bool",
            "defaultValue": {
                "type": "bool",
                "valueBool": false
            }
        },
        {
            "key": "bool_key_2",
            "restrictionType": "bool"
            // defaultValue absent.
        }
    ]
}]

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

"restrictions": [{
    "key": "bundle_key",
    "restrictionType": "bundle",
    "nestedRestriction": [{
            "key": "bool_key_1",
            "restrictionType": "bool",
            "value": {
                "type": "bool",
                "valueBool": false
            }
        },
        // The bool_key_2 child app restriction is not included.
    ]
}]

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

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

לדוגמה, באמצעות הסכימה הבאה של הגבלת אפליקציות:

"restrictions": [{
    "key": "bundle_key",
    "restrictionType": "bundle",
    "nestedRestriction": [{
            "key": "bool_key_1",
            "restrictionType": "bool",
            // defaultValue absent.
        },
        {
            "key": "bool_key_2",
            "restrictionType": "bool"
            // defaultValue absent.
        }
    ]
}]

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

"restrictions": [
    // Empty
]

שימוש ב-bundle_array בתוך הסכימה

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

לדוגמה, באמצעות הסכימה הבאה של הגבלת אפליקציות:

"restrictions": [{
    "key": "bundle_array_key",
    "restrictionType": "bundleArray",
    "nestedRestriction": [{
        "key": "bundle_key",
        "restrictionType": "bundle",
        "nestedRestriction": [{
            "key": "bool_key",
            "restrictionType": "bool",
            "defaultValue": {
                "type": "bool",
                "valueBool": true
            }
        }]
    }]
}]

יש לפחות קבוצת חבילות אחת בהגבלת האפליקציה bundle_array

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

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

"restrictions": [{
    "key": "bundle_array_key",
    "restrictionType": "bundleArray",
    "nestedRestriction": [{
        "key": "bundle_key",
        "restrictionType": "bundle",
        "nestedRestriction": [{
            "key": "bool_key",
            "restrictionType": "bool",
            "value": {
                "type": "bool",
                "valueBool": true
            }
        }]
    }]
}]

אם שומרים הגבלה או קבוצת חבילות אחת, כל ההגבלות/החבילות בתוך bundle_array כולו יוגדרו לפי הקדימות הבאה:

  • הערך שהאדמין בחר
  • ערך ברירת המחדל שמצוין בחבילה/הגבלה הזו.
  • הערך המוצג ב-iFrame אם אין ערך ברירת מחדל

אין קבוצות חבילות בהגבלת האפליקציה Bundle_array

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

"restrictions": [
    // Empty
]