Как зарегистрировать и инициализировать устройство

Подготовка – это процесс настройки устройства для управления с помощью policies, выполняемый enterprise. В процессе настройки на устройство устанавливается приложение Android Device Policy, которое используется для получения и применения policies. Если инициализация выполнена успешно, API создает объект devices, связывающий устройство с предприятием.

Android Management API использует токены регистрации, чтобы запускать процесс инициализации. Токен регистрации и метод инициализации определяют владельца устройства (личное или корпоративное) и режим управления (рабочий профиль или полностью управляемое устройство).

Система квот контролирует, сколькими устройствами можно управлять в рамках каждого проекта. Прежде чем вы сможете зарегистрировать свое первое устройство, вам необходимо запросить начальную квоту на устройства.

Личные устройства

Android 5.1 и более поздних версий

На устройствах, принадлежащих сотрудникам, можно настроить рабочий профиль. Рабочий профиль – это автономное пространство для рабочих приложений и данных, отделенное от личных приложений и данных. Большинство policies, связанных с управлением приложениями, данными и другими аспектами, применяются только к рабочему профилю, а личные приложения и данные сотрудника остаются конфиденциальными.

Чтобы настроить рабочий профиль на личном устройстве, создайте токен регистрации (убедитесь, что для параметра allowPersonalUsage задано значение PERSONAL_USAGE_ALLOWED) и воспользуйтесь одним из следующих способов инициализации:

Корпоративные устройства для работы и личного использования

Android 8 и более поздних версий

Настройка корпоративного устройства с рабочим профилем позволяет использовать устройство как для работы, так и в личных целях. На корпоративных устройствах с рабочими профилями:

Чтобы настроить корпоративное устройство с рабочим профилем, создайте токен регистрации (убедитесь, что для параметра allowPersonalUsage задано значение PERSONAL_USAGE_ALLOWED) и используйте один из следующих методов инициализации:

Корпоративные устройства, используемые только для работы

Android 5.1 и более поздних версий

Полное управление устройствами подходит для устройств, которые предоставляются компанией и используются только в рабочих целях. Организации могут управлять всеми приложениями на устройстве и применять полный спектр правил и команд Android Management API.

Вы также можете заблокировать устройство (с помощью правила), чтобы на нем можно было использовать только одно приложение или небольшой набор приложений для определенной цели. Такие устройства называются специализированными устройствами. Для токенов регистрации этих устройств необходимо задать для параметра allowPersonalUsage значение PERSONAL_USAGE_DISALLOWED_USERLESS.

Чтобы настроить полное управление на корпоративном устройстве, создайте токен регистрации, убедившись, что для параметра allowPersonalUsage задано значение PERSONAL_USAGE_DISALLOWED или PERSONAL_USAGE_DISALLOWED_USERLESS, и используйте один из следующих методов инициализации.

Правила могут влиять на создание интерфейса при подготовке устройства. К ним относятся:

  • PasswordPolicyScope – определяет требования к паролю.
  • PermittedInputMethods – определяет способы ввода пакета.
  • PermittedAccessibilityServices Определяет, какие специальные возможности разрешены на полностью управляемых устройствах и в рабочем профиле.
  • SetupActions – определяет, какие действия выполняются во время настройки.
  • ApplicationsPolicy – определяет правила для отдельного приложения.

Если вы хотите, чтобы во время подготовки устройства шаги по настройке пароля показывались вместе с карточками установки рабочих приложений и регистрации устройства, рекомендуем изменить правила так, чтобы отложить создание интерфейса. Для этого устройство должно находиться в карантине (это происходит, если оно зарегистрировано без связанного правила), пока вы не укажете окончательное правило для настройки устройства, содержащее нужные элементы. После завершения инициализации устройства вы можете изменить правило.


Как создать токен регистрации

Обзор Android Management.
Рисунок 1. Создайте токен, который регистрирует устройства и применяет к ним правило policy1. Через 1800 секунд (30 минут) срок действия токена истекает.

Вам потребуется токен регистрации для каждого устройства, которое вы хотите зарегистрировать (один и тот же токен можно использовать для нескольких устройств). Чтобы запросить токен регистрации, вызовите метод enterprises.enrollmentTokens.create. По умолчанию срок действия токенов регистрации истекает через час, но вы можете указать собственный срок действия (duration) – до 10 000 лет.

В случае успешного выполнения запроса возвращается объект enrollmentToken, содержащий enrollmentTokenId и qrcode, которые системные администраторы и конечные пользователи могут использовать для инициализации устройств.

Укажите правило

Вы также можете указать в запросе policyName, чтобы применить правило одновременно с регистрацией устройства. Если вы не укажете policyName, ознакомьтесь с разделом Как зарегистрировать устройство без правила.

Укажите, что используете аккаунт в личных целях

allowPersonalUsage определяет, можно ли добавить рабочий профиль на устройство во время инициализации. Установите значение PERSONAL_USAGE_ALLOWED, чтобы разрешить пользователю создавать рабочий профиль (обязательно для личных устройств, необязательно для корпоративных).

Исключение для существующих токенов регистрации

Некоторые клиенты используют токены регистрации с длительным сроком действия, чтобы выполнять повторные регистрации. Чтобы не прерывать существующие рабочие процессы, все токены, созданные ДО того, как требование "Аутентификация с помощью Google" было включено в первый раз, освобождаются от новых запросов на вход. Эти старые токены будут работать как раньше, позволяя пользователям регистрировать устройства без прохождения аутентификации Google.

Однако все токены, созданные ПОСЛЕ того, как требование аутентификации Google было включено в первый раз, соответствуют новым правилам аутентификации. Это означает, что на устройствах, использующих эти новые токены, пользователям необходимо пройти аутентификацию в соответствии с настройками, выбранными системным администратором. Для специализированных устройств, на которых не должны храниться пользовательские данные, убедитесь, что для параметра allowPersonalUsage задано значение PERSONAL_USAGE_DISALLOWED_USERLESS, чтобы не отображался экран аутентификации.

Принудительная аутентификация Google при регистрации

EMM-решения могут требовать входа в аккаунт Google при регистрации устройства, если задать соответствующие значения для токена регистрации или входа. Эта конфигурация определяет, скрыта ли кнопка "Пропустить" на экране входа Google. Если эти параметры заданы, они переопределяют правило googleAuthenticationSettings, действующее на уровне организации.

Варианты конфигурации

Вы можете управлять поведением аутентификации с помощью объекта googleAuthenticationOptions в EnrollmentToken или SigninDetail.

Поле Описание Значения
authenticationRequirement Указывает, должен ли пользователь выполнить аутентификацию в Google при регистрации. AUTHENTICATION_REQUIREMENT_UNSPECIFIED: Используются настройки по умолчанию для организации.
OPTIONAL (Необязательно). Пользователь видит экран входа в аккаунт Google, но может пропустить его.
Обязательно. Пользователь не может пропустить вход. Кнопка "Пропустить" скрыта.
requiredAccountEmail Адрес электронной почты управляемого аккаунта Google, который должен использовать пользователь.
Примечание. Если используется это поле, то для authenticationRequirement должно быть задано значение REQUIRED.
Строка (например, "user@enterprise.com")

Примеры полезной нагрузки JSON

Как отключить кнопку "Пропустить"

Чтобы скрыть кнопку "Пропустить" и заставить пользователя войти в систему с помощью любого действительного корпоративного аккаунта, установите для требования аутентификации значение REQUIRED.

{
  ...
  "googleAuthenticationOptions": {
    "authenticationRequirement": "REQUIRED"
  }
}

Как настроить обязательное подтверждение адреса электронной почты

Чтобы заставить пользователя войти в определенный аккаунт, задайте строку requiredAccountEmail. Если не задать для поля requirement значение REQUIRED, запрос на создание токена завершится ошибкой INVALID_ARGUMENT.

{
...
  "googleAuthenticationOptions": {
    "authenticationRequirement": "REQUIRED",
    "requiredAccountEmail": "user@enterprise.com"
  }
}

О QR-кодах

QR-коды – это эффективный способ подготовки устройств для компаний, которые используют множество разных правил. QR-код, полученный от enterprises.enrollmentTokens.create, состоит из полезной нагрузки пар "ключ-значение", содержащих токен регистрации и всю информацию, необходимую Android Device Policy для инициализации устройства.

Пример набора QR-кодов

В пакет входит ссылка на скачивание Android Device Policy и токен регистрации.

{
    "android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME": "com.google.android.apps.work.clouddpc/.receivers.CloudDeviceAdminReceiver",
    "android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM": "I5YvS0O5hXY46mb01BlRjq4oJJGs2kuUcHvVkAPEXlg",
    "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION": "https://play.google.com/managed/downloadManagingApp?identifier=setup",
    "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE":{
        "com.google.android.apps.work.clouddpc.EXTRA_ENROLLMENT_TOKEN": "{enrollment-token}"
    }
}

Вы можете использовать QR-код, возвращенный из enterprises.enrollmentTokens.create, напрямую или настроить его. Полный список свойств, которые можно включить в пакет QR-кода, приведен в разделе Создание QR-кода.

Чтобы преобразовать строку qrcode в QR-код, который можно отсканировать, используйте генератор QR-кодов, например ZXing.


Способы инициализации

В этом разделе описаны различные способы инициализации устройства.

Добавьте рабочий профиль в настройках.

Android 5.1 и более поздних версий

Чтобы настроить рабочий профиль на устройстве, пользователь может:

  1. Откройте Настройки > Google > Настройка и восстановление.
  2. Нажмите Настройте рабочий профиль.

Эти действия запускают мастер настройки, который скачивает Android Device Policy на устройство. Затем пользователю будет предложено отсканировать QR-код или вручную ввести токен регистрации, чтобы завершить настройку рабочего профиля.

Скачать Android Device Policy

Android 5.1 и более поздних версий

Чтобы настроить рабочий профиль на устройстве, пользователь может скачать приложение Android Device Policy из Google Play. После установки приложения пользователю будет предложено отсканировать QR-код или вручную ввести токен регистрации, чтобы завершить настройку рабочего профиля.

Android 5.1 и более поздних версий

Используя токен регистрации, возвращенный из enrollmentTokens.create, или signinEnrollmentToken компании, сгенерируйте URL в следующем формате:

https://enterprise.google.com/android/enroll?et=<enrollmentToken>

Вы можете предоставить этот URL системным администраторам, которые передадут его конечным пользователям. Когда конечный пользователь откроет ссылку на своем устройстве, он увидит инструкции по настройке рабочего профиля.

URL входа

При использовании этого метода пользователи перенаправляются на страницу, где они могут ввести дополнительную информацию, необходимую для завершения инициализации. На основе введенной пользователем информации вы можете рассчитать подходящее для него правило, прежде чем переходить к подготовке устройства. Пример:

  1. Укажите URL входа в enterprises.signInDetails[]. Задайте для параметра allowPersonalUsage значение PERSONAL_USAGE_ALLOWED, если хотите разрешить пользователю создавать рабочий профиль (обязательно для личных устройств, необязательно для корпоративных).

    Добавьте полученный signinEnrollmentToken в качестве дополнительного параметра инициализации в QR-код, полезную нагрузку NFC или конфигурацию автоматической настройки. Вы также можете предоставить пользователям signinEnrollmentToken напрямую.

  2. Выберите один из вариантов:

    1. Корпоративные устройства. После включения нового устройства или сброса настроек передайте signinEnrollmentToken на устройство (с помощью QR-кода, NFC и т. д.) или попросите пользователей ввести токен вручную. Устройство откроет URL входа, указанный на шаге 1.
    2. Личные устройства. Попросите пользователей добавить рабочий профиль в настройках. По запросу пользователь сканирует QR-код, содержащий signinEnrollmentToken, или вводит токен вручную. На устройстве откроется URL входа, указанный на шаге 1.
    3. Личные устройства. Предоставьте пользователям ссылку с токеном регистрации, где токен регистрации – это signinEnrollmentToken. На устройстве откроется URL входа, указанный на шаге 1.
  3. Проверьте, выполнил ли пользователь аутентификацию в Google. Получите информацию о подготовке устройства (во время его регистрации), используя параметр GET provisioningInfo, и проверьте значение поля authenticatedUserEmail. Если в этом поле есть значение, значит пользователь уже успешно прошел аутентификацию в Google и вы можете использовать эти идентификационные данные без дополнительной аутентификации.

  4. Если пользователь ещё не прошел аутентификацию в Google, URL входа должен предлагать пользователям ввести свои учетные данные. На основе идентификационных данных вы можете определить подходящее правило и получить информацию о подготовке устройства (во время его регистрации) с помощью параметра GET provisioningInfo.

  5. Вызовите enrollmentTokens.create, указав подходящий policyId на основе учетных данных пользователя.

  6. Верните токен регистрации, созданный на шаге 5, с помощью переадресации URL в формате https://enterprise.google.com/android/enroll?et=<token>.

Как принудительно включить аутентификацию Google с помощью URL входа

Если вы используете SigninDetail для входа через сторонний сервис (с помощью enterprises.create или enterprises.patch), вы можете передать googleAuthenticationOptions. Это позволяет применить правила до того, как пользователь будет перенаправлен на сторонний URL для входа.

Когда в конце процесса входа по URL создается EnrollmentToken, его требования к аутентификации взаимодействуют с исходным SigninDetail:

  • Если пользователь пропустил вход в Google, потому что он не требовался в SigninDetail, но в EnrollmentToken вход в Google обязателен, пользователь увидит ошибку и ему нужно будет войти в аккаунт.
  • Если в токене задано значение requiredAccountEmail, а пользователь вошел в аккаунт с другим адресом, принадлежащим организации, он увидит ошибку "Неверный аккаунт" и ему потребуется войти в аккаунт с правильным адресом электронной почты.

Способ с QR-кодом

Android 7.0 и более поздних версий

Чтобы подготовить корпоративное устройство, вы можете сгенерировать QR-код и показать его в консоли EMM.

  1. Пользователь (обычно это системный администратор) должен нажать на экран нового устройства (или устройства со сброшенными настройками) шесть раз в одном и том же месте. Появится запрос на сканирование QR-кода.
  2. Пользователь сканирует QR-код, который вы показываете в консоли управления (или аналогичном приложении), чтобы зарегистрировать и настроить устройство.

Метод NFC

Android 6.0 и выше

Для этого способа вам нужно создать приложение для программирования NFC, которое содержит токен регистрации, начальные правила и конфигурацию Wi-Fi, настройки и все другие сведения, необходимые вашему клиенту для подготовки полностью управляемого или специализированного устройства. Устройство Android, на которое вы или ваш клиент установите приложение NFC Programmer, станет программатором.

Подробные инструкции по поддержке метода NFC доступны в документации для разработчиков Play EMM API. На сайте также есть образец кода параметров по умолчанию, которые передаются на устройство при NFC-подключении. Чтобы установить правила для устройств Android, укажите следующий адрес для скачивания пакета администратора устройства:

https://play.google.com/managed/downloadManagingApp?identifier=setup

Метод идентификатора контроллера политик

Если приложение Android Device Policy не удается добавить с помощью QR-кода или NFC, пользователь или системный администратор может выполнить следующие действия, чтобы инициализировать корпоративное устройство:

  1. Следуйте инструкциям мастера настройки на новом устройстве или устройстве, настройки которого были сброшены.
  2. Введите учетные данные Wi-Fi, чтобы подключить устройство к интернету.
  3. Когда появится запрос на вход, введите afw#setup, чтобы скачать правила для устройств Android.
  4. Отсканируйте QR-код или введите токен регистрации вручную, чтобы инициализировать устройство.

Автоматическая настройка

Android 8.0 и более поздние версии (Pixel 7.1 и более поздние версии)

Устройства, приобретенные у авторизованного реселлера с поддержкой автоматической настройки, можно настроить автоматически. Это упрощенный способ предварительной настройки устройств, позволяющий им автоматически инициализироваться при первом запуске.

Организации могут создавать конфигурации, содержащие сведения о подготовке устройств с поддержкой автоматической настройки, на портале автоматической настройки или в консоли EMM (см. API для клиентов, использующих автоматическую настройку). При первой загрузке устройства выполняется проверка, назначена ли для него конфигурация. Если да, то на устройство скачивается приложение Android Device Policy, которое затем завершает настройку устройства, используя дополнительные параметры инициализации, указанные в назначенной конфигурации.

Если ваши клиенты используют портал автоматической настройки, им нужно выбрать Android Device Policy в качестве контроллера политики устройств EMM для каждой создаваемой конфигурации. Подробные инструкции по работе с порталом, в том числе по созданию и назначению конфигураций для устройств, можно найти в Справочном центре Android Enterprise.

Если вы хотите, чтобы ваши клиенты могли задавать и назначать конфигурации непосредственно из консоли EMM, вам необходимо интегрировать API для клиентов, использующих автоматическую настройку. При создании конфигурации укажите дополнительные параметры инициализации в поле dpcExtras. Фрагмент кода в формате JSON ниже – это пример того, что нужно включить в dpcExtras, с добавленным токеном входа.

{
   "android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME":"com.google.android.apps.work.clouddpc/.receivers.CloudDeviceAdminReceiver",
   "android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM":"I5YvS0O5hXY46mb01BlRjq4oJJGs2kuUcHvVkAPEXlg",
   "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE":{
      "com.google.android.apps.work.clouddpc.EXTRA_ENROLLMENT_TOKEN":"{Sign In URL token}"
   }
}

Как запустить приложение во время настройки

setupaction
Рисунок 2. Используйте setupActions, чтобы запустить приложение во время настройки.

В policies можно указать одно приложение, которое будет запускаться Android Device Policy во время настройки устройства или рабочего профиля. Например, вы можете запустить приложение VPN, чтобы пользователи могли настроить VPN в процессе настройки. Приложение должно возвращать RESULT_OK, чтобы сигнализировать о завершении и позволить правилам для устройств Android завершить инициализацию устройства или рабочего профиля. Чтобы запустить приложение во время настройки:

Убедитесь, что для приложения installType указано значение REQUIRED_FOR_SETUP. Если приложение не удается установить или запустить на устройстве, инициализация не будет выполнена.

{
   "applications":[
      {
         "packageName":"com.my.vpnapp.",
         "installType":"REQUIRED_FOR_SETUP"
      }
   ]
}

Добавьте название пакета приложения в setupActions. Используйте типы title и description, чтобы указать инструкции для пользователей.

{
   "setupActions":[
      {
         "title":{
            "defaultMessage":"Configure VPN"
         },
         "description":{
            "defaultMessage":"Enable your VPN client to access corporate resources."
         },
         "launchApp":{
            "packageName":"com.my.vpnapp."
         }
      }
   ]
}

Чтобы определить, что приложение запущено из launchApp, в первое действие, которое запускается в рамках приложения, добавляется логический параметр com.google.android.apps.work.clouddpc.EXTRA_LAUNCHED_AS_SETUP_ACTION со значением true. С помощью этого параметра вы можете настроить приложение в зависимости от того, запущено ли оно из setupActions или пользователем.

После того как приложение вернет RESULT_OK, правила для устройств Android выполнят все оставшиеся шаги, необходимые для инициализации устройства или рабочего профиля.

Как отменить регистрацию во время настройки

Приложение, запущенное как SetupAction, может отменить регистрацию, возвращая RESULT_FIRST_USER.

При отмене регистрации корпоративное устройство сбрасывается, а на личном устройстве удаляется рабочий профиль.

Примечание. При отмене регистрации действие запускается без диалогового окна подтверждения пользователя. Приложение должно показать пользователю диалоговое окно с сообщением об ошибке, прежде чем возвращать RESULT_FIRST_USER.

Как применить правило к новым зарегистрированным устройствам

Вы можете выбрать способ применения правил к новым зарегистрированным устройствам в зависимости от требований клиентов. Вот несколько подходов, которые вы можете использовать:

  • Рекомендуется. При создании токена регистрации вы можете указать название правила (policyName), которое будет изначально связано с устройством. Когда вы регистрируете устройство с помощью токена, правило автоматически применяется к устройству.

  • Как задать правило по умолчанию для предприятия Если в токене регистрации не указано название правила и есть правило с названием enterprises/<enterprise_id>/policies/default, каждое новое устройство автоматически связывается с правилом по умолчанию во время регистрации.

  • Подпишитесь на тему Cloud Pub/Sub, чтобы получать уведомления о новых зарегистрированных устройствах. В ответ на уведомление ENROLLMENT вызовите enterprises.devices.patch, чтобы связать устройство с правилом.

Как зарегистрировать устройство без правил

Если устройство зарегистрировано без действительного правила, оно помещается в карантин. Устройства, помещенные в карантин, блокируются до тех пор, пока к ним не будет применено правило.

Если устройство не будет связано с правилом в течение пяти минут, регистрация устройства завершится ошибкой и его настройки будут сброшены. Статус карантина позволяет вам реализовать в своем решении проверку лицензий или другие процессы проверки регистрации.

Пример проверки лицензии

  1. Устройство зарегистрировано без политики по умолчанию или специальной политики.
  2. Проверьте, сколько лицензий осталось у компании.
  3. Если лицензии есть, используйте devices.patch, чтобы прикрепить правило к устройству, а затем уменьшите количество лицензий. Если доступных лицензий нет, используйте devices.patch, чтобы отключить устройство. Если в течение пяти минут после регистрации устройство не будет связано с правилом, API сбросит его настройки.