Obsługa konfiguracji zarządzanych

Niektóre aplikacje przeznaczone dla firm mają wbudowane ustawienia nazywane konfiguracjami zarządzanymi, które administratorzy IT mogą konfigurować zdalnie. Na przykład aplikacja może mieć opcję synchronizowania danych tylko wtedy, gdy urządzenie jest połączone z Wi-Fi. W przypadku wszystkich zestawów rozwiązań wymagane jest umożliwienie administratorom IT określania konfiguracji zarządzanych i stosowania ich na urządzeniach. Konfiguracje zarządzane możesz obsługiwać w konsoli EMM na 2 sposoby:

  • Utwórz własny interfejs i zastosuj ustawienia za pomocą managedConfiguration w ApplicationPolicy.
  • Dodaj do konsoli element iframe konfiguracji zarządzanej (instrukcje znajdziesz poniżej) i zastosuj ustawienia za pomocą managedConfigurationTemplate w ApplicationPolicy


Element iframe konfiguracji zarządzanej to możliwy do umieszczenia interfejs, który umożliwia administratorom IT zapisywanie, edytowanie i usuwanie ustawień konfiguracji zarządzanej aplikacji. Możesz na przykład wyświetlić przycisk (lub podobny element interfejsu) na stronie z informacjami lub ustawieniami aplikacji, który otwiera element iframe.

Działania dostępne dla administratorów IT w elemencie iframe

iframe mcm
Rysunek 1. Przykładowe elementy iframe konfiguracji zarządzanych w Gmailu

Ustawianie i zapisywanie profili konfiguracji

Element iframe pobiera i wyświetla schemat konfiguracji zarządzanych dla określonej aplikacji. W elemencie iframe administrator IT może ustawiać konfiguracje i zapisywać je jako profile konfiguracji. Za każdym razem, gdy administrator IT zapisuje nowy profil konfiguracji, element iframe zwraca unikalny identyfikator o nazwie mcmId. Dzięki temu administratorzy IT mogą tworzyć wiele profili dla tej samej aplikacji.

Edytowanie profili konfiguracji

Element iframe może wyświetlać zapisane profile konfiguracji. Administratorzy IT mogą aktualizować ustawienia w profilu i zapisywać zmiany.

Usuń profile konfiguracji

Administratorzy IT mogą usuwać profile konfiguracji z elementu iframe. Ta funkcja jest domyślnie wyłączona.

Dodawanie elementu iframe do konsoli

Generowanie tokena internetowego

Za pomocą enterprises.webTokens.create wygeneruj token internetowy, który identyfikuje firmę, i ustaw iframeFeature na MANAGED_CONFIGURATIONS. Podczas renderowania elementu iframe w konsoli musisz uwzględnić zwrócony token wraz z innymi parametrami.

Renderowanie elementu iframe

Oto przykład renderowania elementu iframe konfiguracji zarządzanej:

<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>

Parametry adresu URL

Tabela poniżej zawiera wszystkie dostępne parametry adresu URL elementu iframe.

ParametrWymaganeOpis
token Tak Token zwrócony z Enterprises.createWebToken.
packageName Tak Identyfikator produktu aplikacji. Na przykład com.google.android.gm.
mcmId Nie Identyfikator profilu konfiguracji zarządzanej.
canDelete Nie Jeśli ma wartość TRUE, włącza w elemencie iframe przycisk, który umożliwia administratorom IT usunięcie profilu konfiguracji zarządzanej. Jeśli wartość domyślna to FALSE, przycisk jest wyłączony.
locale Nie Prawidłowo sformatowany tag języka BCP 47, który służy do lokalizowania treści w elemencie iframe. Jeśli nie podasz żadnej wartości, domyślną wartością będzie en_US.

Zdarzenia iframe

W ramach integracji musisz też obsługiwać poniższe zdarzenia.

ZdarzenieOpis
onconfigupdated Użytkownik zaktualizuje istniejący profil konfiguracji zarządzanej lub utworzy nowy. Zwraca on obiekt zawierający:
{
  "mcmId": The ID of the managed configurations profile.
  "name": The name of the updated or newly created managed configurations profile.
}
onconfigdeleted Użytkownik usuwa istniejący profil konfiguracji zarządzanej. Zwraca on obiekt zawierający:
{
  "mcmId": The ID of the managed configurations profile.
}

Ten przykład pokazuje, jak nasłuchiwać słowa onconfigupdated:

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

Aktualizacje schematu konfiguracji zarządzanych w aplikacji

Jeśli deweloper zaktualizuje schemat konfiguracji zarządzanej aplikacji, zapisane profile konfiguracji zostaną automatycznie zaktualizowane. Jeśli na przykład deweloper usunie jakąś opcję, zostanie ona usunięta ze wszystkich istniejących profili konfiguracji aplikacji. Jeśli deweloper doda opcję, jej domyślna wartość (zdefiniowana przez dewelopera) zostanie dodana do wszystkich istniejących profili konfiguracji aplikacji.

Zastosuj profile konfiguracji do zasady

Każdy profil konfiguracji jest zapisywany jako unikalny identyfikator mcmId. Aby zastosować do zasady profil konfiguracji, wpisz mcmId w managedConfigurationTemplate.


Działanie po zaznaczeniu/odznaczeniu

Element iframe konfiguracji zarządzanej umożliwia teraz administratorom IT jawne odznaczanie ograniczeń aplikacji w konfiguracji zarządzanej, gdy ich nie potrzebują. Jest to zmiana w stosunku do poprzedniego sposobu działania i może mieć wpływ na ograniczenia wysyłane do aplikacji w zależności od wyboru administratora.

W sekcji poniżej opisujemy, jak działa element iframe konfiguracji zarządzanej z nowym wzorcem odznaczania, a także informacje, jakie deweloperzy mogą się spodziewać w ramach konfiguracji zarządzanej.

Używanie wartości domyślnej ograniczenia aplikacji

Jeśli ograniczenia aplikacji z typem bool, choice, integer, wielokrotny wybór lub ciąg znaków mają wartość domyślną, ta wartość będzie stosowana jako wartość ograniczenia aplikacji, gdy administratorzy zapiszą konfigurację zarządzaną bez konieczności wprowadzania zmian w tym ograniczeniu.

Na przykład z tym schematem ograniczeń aplikacji:

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

Ograniczenia aplikacji wysłane na urządzenie będą:

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

Bez używania domyślnych wartości ograniczeń aplikacji

Jeśli ograniczenia aplikacji z typem bool, choice, integer, wielokrotny wybór lub ciąg znaków nie mają wartości domyślnej, te ograniczenia aplikacji nie są uwzględniane, gdy administratorzy zapisują konfigurację zarządzaną bez zastosowania w nich żadnych zmian.

Na przykład z tym schematem ograniczeń aplikacji:

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

Ograniczenia aplikacji wysłane na urządzenie będą:

"restrictions": [
    // Empty
]

Używanie pakietów w schemacie

Ta sekcja dotyczy ograniczeń aplikacji dotyczących pakietów:

mieć co najmniej 1 ograniczenie dotyczące aplikacji dla dzieci z wartością domyślną w ograniczeniu dotyczącym pakietu aplikacji.

Jeśli w ramach pakietu w ramach ograniczenia dotyczącego aplikacji podrzędnej co najmniej jedno ograniczenie dotyczące aplikacji podrzędnej ma typ bool, wybór, całkowite, wielokrotny wybór lub ciąg znaków z wartością domyślną, wartość domyślna jest stosowana jako wartość ograniczenia aplikacji, a te bez wartości domyślnych zostaną wykluczone, gdy administratorzy zapiszą konfigurację zarządzaną bez wprowadzania w nich żadnych zmian.

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

Ograniczenia aplikacji wysłane na urządzenie będą:

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

Wszystkie ograniczenia aplikacji podrzędnych bez wartości domyślnych

Jeśli w ramach pakietu ograniczenia dotyczące aplikacji podrzędnych podlegają ograniczeniom typu bool, wybór, liczba całkowita, wielokrotny wybór lub ciąg znaków, nie mają wartości domyślnej, ograniczenie dotyczące pakietu aplikacji nie zostanie uwzględnione, gdy administratorzy zapiszą konfigurację zarządzaną bez zastosowania żadnych zmian w tym zakresie.

Na przykład z tym schematem ograniczeń aplikacji:

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

Ograniczenia aplikacji wysłane na urządzenie będą:

"restrictions": [
    // Empty
]

Korzystanie z tablicy_pakietu w schemacie

Ta sekcja dotyczy ograniczeń aplikacji związanych z atrybutem bundle_array. Nie ma znaczenia, jeśli ograniczenia dotyczące aplikacji podrzędnych z typem bool, choice, integer, wyborem wielokrotnym lub ciągiem znaków mają wartości domyślne.

Na przykład z tym schematem ograniczeń aplikacji:

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

Ograniczenie dotyczące aplikacji „bundle_array” zawiera co najmniej 1 grupę pakietów.

Jeśli skonfigurowana jest co najmniej 1 grupa pakietów, po zapisaniu konfiguracji zarządzanej przez administratora zostanie uwzględnione ograniczenie aplikacji bundle_array.

Ograniczenia aplikacji wysłane na urządzenie będą:

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

Jeśli zapiszesz jedno ograniczenie lub grupę pakietów, wszystkie ograniczenia/pakiety w całym bundle_array będą miały takie priorytety:

  • wartość wybrana przez administratora
  • domyślna wartość podana dla tego pakietu/ograniczenia.
  • wartość wyświetlana w elemencie iframe, jeśli nie ma wartości domyślnej.

Brak grup pakietów w ograniczeniu dotyczącym aplikacji „bundle_array”

Ograniczenie aplikacji bundle_array nie zostanie uwzględnione, gdy administratorzy zapiszą konfigurację zarządzaną bez dodawania grupy pakietu. Ograniczenia aplikacji wysłane na urządzenie będą:

"restrictions": [
    // Empty
]