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

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

בקטע שבהמשך מוסבר איך פועלת ה-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
]

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

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

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

אם בהגבלת האפליקציה בחבילה מופיעה ערך ברירת מחדל להגבלה אחת לפחות של אפליקציות צאצא מסוג 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.
    ]
}]

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

אם בהגבלת האפליקציה bundle או בהגבלת אפליקציה צאצא, כל ההגבלות של אפליקציות הצאצא מסוג 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
]