הגדרת אפליקציות

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

בתרשים הבא מתוארים כמה מהשלבים העיקריים בניהול הגדרות מנוהלות, עם סקירה כללית של האפשרויות הזמינות ב-Google Play EMM API.

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

בעזרת Products.getAppRestrictionsSchema אפשר לבדוק אם האפליקציה תומכת בהגדרות מנוהלות. הנה דוגמה שמשתמשת בספריית הלקוח של ממשק ה-API של Google Play EMM ל-Java.

public AppRestrictionsSchema getAppRestrictionsSchema(String enterpriseId,
    String productId, String language) throws IOException {
  return androidEnterprise
     .product()
     .getAppRestrictionsSchema(enterpriseId, productId, language)
     .execute();
}

כל האפליקציות מחזירות סכימה של הגבלות על אפליקציות (הגדרות מנוהלות). אם הקריאה מחזירה סכימה ריקה, האפליקציה לא תומכת בניהול הגדרות אישיות. אם הקריאה מחזירה סכימה שמכילה קבוצה של הגבלות, האפליקציה תומכת בהגדרות מנוהלות. לדוגמה, אפליקציה שיש לה מאפיין להפעלה מרחוק באמצעות VPN יכולה להחזיר את התגובה הבאה אל Products.getAppRestrictionsSchema.

    {
      "kind": "androidenterprise#appRestrictionsSchema",
      "restrictions": [
        {
          "key": "printing_enabled",
          "title": "Enable printing",
          "restrictionType": "bool",
          "description": "Allow user to print from the app",
          "defaultValue": {
            "type": "bool",
            "valueBool": true,
          }
        },
        {
          "key": "vpn_configurations",
          "title": "VPN configurations",
          "restrictionType": "bundle_array",
          "description": "List of VPN configurations",
          "nestedRestriction": [
            {
              "key": "vpn_configuration",
              "title": "VPN configuration",
              "restrictionType": "bundle",
              "nestedRestrictions": [
                {
                  "key": "server",
                  "title": "VPN server host",
                  "restrictionType": "string"
                },
                {
                  "key": "username",
                  "title": "VPN account username",
                  "restrictionType": "string"
                }
              ]
            }
          ]
        }
      ]
    }

ציון ההגדרות המנוהלות

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

אפשרות 1: הטמעת ה-iframe של ההגדרות המנוהלות

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

אפשרות 2: יצירת ממשק משתמש משלך

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

החלת תצורות מנוהלות

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

אפשר להחיל הגדרות מנוהלות על מכשיר על ידי הגדרת policy.productPolicy.managedConfiguration בpolicy של Device.

שימוש ב-mcmId

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

כדי להחיל הגדרות אישיות במכשיר צריך להגדיר את הערך policy.productPolicy.managedConfiguration.configurationVariables.mcmId ב-policy של Device.

אם אתם רוצים לאפשר לאדמינים ב-IT להשתמש במשתנה ב-iframe של ההגדרות המנוהלות (למשל $FirstName, $LastName), אתם צריכים להגדיר את כל המשתנים שנכללים בפרופיל באמצעות policy.productPolicy[].managedConfiguration.configurationVariables.mcmId.variableSet[].

שימוש ברשימה של נכסים מנוהלים

אפשר גם לכלול קבוצה של מאפיינים מנוהלים על ידי הגדרת policy.productPolicy.managedConfiguration.managedProperty[] בpolicy של Device.

הדוגמה הבאה ממחישה איך מגדירים הגדרות אישיות. ההגדרה הזו מכילה bundle_array (רשימה) שמורכבת משני נכסי חבילה (קבוצה של נכסים קשורים, במקרה הזה, מאפיינים ל-VPN).

    ManagedConfiguration managedConfiguration = new ManagedConfiguration()
      .setManagedProperty(
        ImmutableList.of(
            new ManagedProperty()
                .setKey("printing_enabled")
                .setValueBool(true),
            new ManagedProperty()
                .setKey("vpn_configurations")
                .setValueBundleArray(
                    ImmutableList.of(
                        new ManagedPropertyBundle().setManagedProperty(
                            ImmutableList.of(
                                new ManagedProperty()
                                    .setKey("server")
                                    .setValueString("vpn1.example.com"),
                                new ManagedProperty()
                                    .setKey("username")
                                    .setValueString("john.doe"))),
                        new ManagedPropertyBundle().setManagedProperty(
                            ImmutableList.of(
                                new ManagedProperty()
                                    .setKey("server")
                                    .setValueString("vpn2.example.com"),
                                new ManagedProperty()
                                    .setKey("username")
                                    .setValueString("jane.doe")))))));

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

הצגת רשימה של פרופילי אפליקציות

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