Aprovisionar dispositivos

Existen varias formas de aprovisionar dispositivos. Los requisitos comerciales de tus clientes determinan qué métodos de aprovisionamiento querrás usar.

Conceptos básicos sobre el aprovisionamiento de dispositivos

Las situaciones de implementación de aprovisionamiento de dispositivos que tus clientes quieren admitir (como BYOD o propiedad de la empresa) determinan los modos de operación que usarás (como el modo de propietario del dispositivo o el modo de propietario del perfil). Del mismo modo, los modos de operación y las versiones de Android que necesitas para admitir determinan qué métodos de aprovisionamiento implementarás.

Situaciones de implementación

En una situación de implementación que pertenece a una empresa, esta es la propietaria de los dispositivos que usan sus empleados y los controla por completo. Por lo general, las organizaciones implementan dispositivos pertenecientes a la empresa cuando necesitan supervisar y administrar estrictamente todo el dispositivo.

Las empresas que admiten una situación de implementación de BYOD permiten que sus empleados traigan dispositivos personales al trabajo y los usen para acceder a información y aplicaciones con privilegios de la empresa.

Modos de operación

Las implementaciones que son propiedad de la empresa son compatibles con el modo de operación propietario del dispositivo. En Android, tu app de administración se denomina controlador de política de dispositivo (DPC). El DPC aplica políticas en un dispositivo con Android y, cuando actúa como propietario, administra todo el dispositivo. Como propietario del dispositivo, el DPC puede realizar acciones en todo el dispositivo, como configurar la conectividad de todo el dispositivo, ajustar la configuración global y restablecer la configuración de fábrica.

Las implementaciones de BYOD son compatibles con el modo de operación propietario del perfil. Mediante el DPC, la empresa habilita los dispositivos personales para uso laboral agregando un perfil de trabajo a la cuenta de usuario principal del dispositivo. El perfil de trabajo está asociado con el usuario principal, pero como un perfil independiente. Como propietario del perfil, el DPC administra solo el perfil de trabajo en el dispositivo y tiene un control limitado fuera de este.

Métodos de aprovisionamiento del propietario del dispositivo

Debes aprovisionar el modo de funcionamiento de propietario del dispositivo durante la configuración inicial de un dispositivo nuevo o después de un restablecimiento de la configuración de fábrica. El modo de propietario del dispositivo no se puede aprovisionar en un dispositivo en ningún otro momento.

Según el caso de uso, existen 2 tipos principales de métodos de aprovisionamiento para aprovisionar el modo de propietario del dispositivo.

  • En un flujo controlado por dispositivos, los administradores de TI pueden usar NFC para aprovisionar grandes cantidades de dispositivos. Este flujo se puede usar para situaciones de cuentas de Google Play administradas o Google Workspace.
  • En un flujo controlado por el usuario, las opciones dependen de si la organización usa Google Workspace.
    • En una situación de Google Workspace, el usuario agrega su Cuenta de Google durante la configuración inicial del dispositivo, y el DPC debe guiar al usuario en los pasos para configurar el propietario del dispositivo. Un flujo controlado por el usuario puede ayudar a los usuarios finales a configurar nuevos dispositivos y también es una alternativa cuando los dispositivos no son compatibles con NFC.
    • Cuando una organización no usa Google Workspace, debes usar el método de Cuentas de Google Play administradas.

Nota: Si limitas la distribución de tu app a países específicos en Play, se ignorarán estas restricciones durante el aprovisionamiento del propietario del dispositivo. El DPC se descargará incluso si el dispositivo no se encuentra en uno de los países de segmentación.

Métodos de aprovisionamiento del propietario del perfil

El método recomendado para aprovisionar el modo de operación de propietario del perfil depende de si la organización usa Google Workspace.

  • En el caso de Google Workspace, el método recomendado es un flujo controlado por el usuario en el que este agrega su Cuenta de Google, y el DPC lo guía a través de los pasos para configurar el propietario del perfil.
  • Cuando una organización no usa Google Workspace, el método recomendado es el de Cuentas de Google Play administradas.

También se admite el método tradicional, en el que se le solicita al usuario que instale el DPC de forma manual. Depende del usuario para descargar tu DPC desde Google Play y, luego, instalarlo y, luego, el DPC lo guía por el resto del proceso para configurar el propietario del perfil.

Diferencias clave en el aprovisionamiento entre las versiones de Android

Situación de implementación Modo de operación Método de aprovisionamiento 5.0, 5.1 6.0, posterior 7.0, posterior
Perteneciente a la empresa Propietario del dispositivo Código QR
Cuentas de Google Play administradas
Cuenta de Google
NFC
BYOD Propietario del perfil Cuentas de Google Play administradas
Cuenta de Google 5.11
Instalación manual de DPC

Consideraciones generales sobre la implementación

A continuación, se incluyen algunos aspectos que debes tener en cuenta cuando escribes tu DPC, sin importar el modo de operación que implementes.

Compatibilidad con los Servicios de Google Play

En la guía de APK de Servicios de Google Play, se indica a los desarrolladores que verifiquen la versión de los Servicios de Google Play antes de realizar transacciones de API. Debido a que intentar actualizar los Servicios de Google Play causa interrupciones graves en el proceso de configuración del dispositivo, tu DPC no debe intentar actualizar los Servicios de Google Play antes de que se complete el aprovisionamiento del dispositivo.

Los puntos clave sobre la compatibilidad del DPC con los Servicios de Google Play son los siguientes:

  • El DPC debe ejecutarse con los Servicios de Google Play que se enviaron con un dispositivo en particular.
  • El DPC no debería depender de funciones nuevas en versiones futuras de los Servicios de Google Play que estén disponibles en el momento del aprovisionamiento del dispositivo.

Cuando se completa el aprovisionamiento del dispositivo, el DPC puede pedirle al usuario que actualice los Servicios de Google Play para que pueda usar las funciones más recientes. Sin embargo, si una función no está disponible por algún motivo, el DPC debe recurrir a la versión que se envió con el dispositivo.

Recupera detalles del dispositivo

Debido a los retrasos en la propagación, pueden pasar hasta 2 minutos antes de que una llamada a devices.get de un dispositivo recién inscrito muestre sus detalles.

Si tu flujo de trabajo requiere los detalles para que el usuario final pueda usar el dispositivo o el perfil de trabajo, te sugerimos que uses una pantalla de progreso en tu DPC y esperes hasta que la llamada se realice correctamente.

Consideraciones de implementación para el modo de propietario del perfil

A continuación, se incluyen algunos aspectos que debes tener en cuenta cuando escribes tu DPC para implementar el modo de operación de propietario del perfil.

Quita o inhabilita el DPC personal

Cuando se aprovisiona el modo de operación de propietario del perfil, el DPC comienza a ejecutarse en el perfil personal e inicia el proceso para crear un perfil de trabajo. Una vez que se crea el perfil de trabajo, el DPC también se ejecuta dentro del perfil de trabajo. El DPC del perfil de trabajo completa el proceso de aprovisionamiento. En ese momento, el DPC del perfil personal debe inhabilitarse a sí mismo o el usuario del dispositivo debe quitarlo.

El usuario quita el DPC personal

  1. El DPC personal escucha a ACTION_MANAGED_PROFILE_PROVISIONED. (En el caso de los dispositivos con Android 5.1, el DPC personal debe escuchar ACTION_MANAGED_PROFILE_ADDED).
  2. El DPC personal inicia una solicitud de desinstalación ACTION_UNINSTALL_PACKAGE. Se le pedirá al usuario que desinstale el DPC personal. Para brindar la mejor experiencia del usuario, el proceso de desinstalación debe ocurrir durante el flujo de aprovisionamiento.

El DPC personal se inhabilita automáticamente

  1. El DPC personal escucha a ACTION_MANAGED_PROFILE_PROVISIONED. (En el caso de los dispositivos con Android 5.1, el DPC personal debe escuchar ACTION_MANAGED_PROFILE_ADDED).
  2. Si corresponde, el DPC personal debe liberar los privilegios de administrador del dispositivo antes de inhabilitarse.
  3. El DPC personal inicia una solicitud de inhabilitación setApplicationEnabledSetting con el parámetro COMPONENT_ENABLED_STATE_DISABLED.
  4. El usuario puede volver a habilitar el DPC personal desde Google Play.

Consideraciones de implementación para el modo de propietario del dispositivo

A continuación, se incluyen algunos aspectos que debes tener en cuenta cuando escribes tu DPC para implementar el modo de operación de propietario del dispositivo.

El dispositivo debe ser nuevo o restablecer la configuración de fábrica

Debes aprovisionar el modo de funcionamiento de propietario del dispositivo durante la configuración inicial de un dispositivo nuevo o después de un restablecimiento de la configuración de fábrica. El modo de propietario del dispositivo no se puede aprovisionar en un dispositivo en ningún otro momento.

El modo de propietario del dispositivo le da al DPC control total sobre un dispositivo. Si se permitió el modo de propietario del dispositivo de aprovisionamiento después de la configuración inicial, ten en cuenta lo siguiente:

  • El software malicioso podría crear un propietario del dispositivo y controlarlo.
  • Es posible que se generen problemas de privacidad si ya hay algunas apps o datos del usuario en el dispositivo.

Cómo configurar el modo de propietario del dispositivo solo en dispositivos de la empresa

Solo debes aprovisionar el modo de propietario del dispositivo en los dispositivos que identifiques como propiedad de la empresa de tu cliente. A fin de verificar esto, puedes detectar un identificador de dispositivo único (como un número de serie) o usar un conjunto dedicado de cuentas autorizadas para la inscripción de dispositivos a través de tu política de EMM.

Si no puedes verificar la propiedad de la empresa de un dispositivo, debes crear un mecanismo a prueba de fallas para que el modo de propietario del dispositivo no se aprovisione por error. Por ejemplo, puedes pedirle al usuario del dispositivo que confirme o realice alguna acción afirmativa antes de aprovisionar el modo de propietario del dispositivo.

Habilitar apps del sistema

Cuando el DPC aprovisiona un perfil de trabajo, se supone que cualquier app del sistema sin íconos de selector es crítica para el dispositivo y se le permite automáticamente ejecutarse en el perfil de trabajo. Las apps del sistema que tienen íconos de selector se consideran opcionales, y puedes decidir si deseas habilitarlas.

Habilitar apps del sistema a través de Google Play

Habilitar apps del sistema con Google Play es fácil, y los usuarios reciben actualizaciones a medida que están disponibles.

Cómo habilitar las apps del sistema con las APIs del framework de Android

Si quieres que los usuarios vean las apps del sistema en cuanto comiencen a usar sus dispositivos, habilítalas como parte del proceso de aprovisionamiento de dispositivos. El DPC habilita las apps del sistema por nombre de paquete o intent mediante DevicePolicyManager.enableSystemApp().

Hay varias formas de identificar las apps del sistema que deseas habilitar y presentar a los administradores de TI en la consola de EMM.

Cómo crear catálogos de apps del sistema

En este método, cada dispositivo determina qué apps están en él y envía estos datos de vuelta a la consola de EMM. La consola de EMM muestra estos datos de forma dinámica cuando se crea una política de dispositivo, lo que permite al administrador de TI administrar apps por app.

  1. Si aún no se aprovisionó el perfil de trabajo en el dispositivo, usa queryIntentActivities() para obtener una lista de todas las apps con íconos de selector en un dispositivo:

    private List<ResolveInfo> getAppsWithLauncher() {
      Intent i = new Intent(Intent.ACTION_MAIN);
      i.addCategory(Intent.CATEGORY_LAUNCHER);
      return getPackageManager().queryIntentActivities(i, 0);
    }
    
  2. Si el perfil de trabajo ya está aprovisionado en el dispositivo, obtén una lista de todas las apps del perfil de trabajo con PackageManager.GET_DISABLED_COMPONENTS y PackageManager.GET_UNINSTALLED_PACKAGES.

  3. Para buscar las apps del sistema en la lista, consulta FLAG_SYSTEM, que indica si hay una app instalada en la imagen del sistema del dispositivo.

Ventajas:

  • Proporciona a los administradores de TI un panorama completo de las apps de todos los dispositivos.
  • Proporciona control detallado sobre las apps habilitadas.

Desventajas:

  • Debido a que cada dispositivo tiene un catálogo de apps diferente, es difícil aplicar un modelo de configuración de política única a varios tipos de dispositivos.
  • Presentar el volumen de apps específicas de OEM de una manera significativa para los administradores de TI puede ser un desafío.

Categoriza las apps del sistema según su funcionalidad

Cuando un administrador de TI desea habilitar una app del sistema para un grupo de dispositivos, selecciona una app genérica basada en la funcionalidad, por ejemplo, "Navegador del sistema". Luego, el DPC permite todas las apps del sistema para ese intent.

Ventajas:

  • Habilitación simple y basada en funciones para los administradores de TI
  • Garantiza una funcionalidad coherente en una variedad de dispositivos (al menos para casos de uso comunes).

Desventajas:

  • Limita las apps del sistema a aquellas compatibles con todos los tipos de dispositivos.
  • Es posible que los administradores de TI quieran enviar una versión de OEM de una app (como un navegador Samsung®), pero no otra (como un navegador LG®).
  • Es posible que los administradores de TI no quieran enviar varias apps, pero no pueden evitarlo cuando hay varios controladores de intents.

Cómo admitir solo apps del sistema aprobadas

Trabajas con el OEM para identificar paquetes de OEM específicos y brindar compatibilidad solo con esos paquetes dentro de la consola de EMM. Esto también te permite catalogar las configuraciones administradas para la app del OEM, que no conocerías de otro modo, ya que esta no está alojada en Google Play.

Ventajas:

  • Simplifica en gran medida el flujo de trabajo de integración y elimina los casos extremos que son problemáticos en las dos primeras opciones.
  • Puedes catalogar las configuraciones administradas de la app del OEM y presentarlas en la consola de EMM para los administradores de TI.
  • Permite relaciones estrechas con OEM para los dispositivos insignia compatibles.

Desventajas:

  • Son menos escalables y reducen las opciones de los consumidores como resultado.

Situaciones de prueba para tu DPC

Test DPC es una app de código abierto que proporciona Google para probar las capacidades empresariales en tu app de DPC. Prueba DPC está disponible en github o Google Play. Puedes usar el DPC de prueba para lo siguiente:

  • Cómo simular funciones en Android
  • Establece y aplica políticas
  • Cómo establecer restricciones de intents y apps
  • Configurar perfiles de trabajo
  • Configura dispositivos Android completamente administrados

Si bien el DPC de prueba está diseñado principalmente como un vehículo para probar tu solución empresarial para Android, también puedes usarlo como fuente de código de muestra para las funciones de Android.

Personaliza el aprovisionamiento

Durante el aprovisionamiento del dispositivo, la interfaz de usuario del sistema muestra un color predeterminado en la barra de estado y un logotipo predeterminado en la parte superior de la pantalla. Configura colores y logotipos personalizados para proporcionar una transición visual coherente entre tu DPC y la interfaz del sistema, o permite que los administradores lo hagan mediante tu consola de EMM. Por ejemplo, un administrador puede subir un logotipo de la empresa o personalizar el aspecto de las pantallas que muestran notificaciones.

Tu DPC aplica las opciones de color y logotipo mediante los extras DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR y DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI.

Para configurar un color personalizado, usa EXTRA_PROVISIONING_MAIN_COLOR a fin de establecer un número entero que indique el color predominante que se mostrará durante el aprovisionamiento del dispositivo. Coloca el extra (constante) en un intent con ACTION_PROVISION_MANAGED_PROFILE o ACTION_PROVISION_MANAGED_DEVICE.

Para ver cómo se representan los números enteros, consulta Color. Para ver un ejemplo, consulta MAIN_COLOR en la app TestDPC.

Para configurar un logotipo personalizado, usa EXTRA_PROVISIONING_LOGO_URI a fin de configurar una imagen que se muestre en la parte superior de la pantalla durante el aprovisionamiento del dispositivo. Coloca el extra (constante) en un intent con ACTION_PROVISION_MANAGED_PROFILE o ACTION_PROVISION_MANAGED_DEVICE. Asegúrate de que la imagen tenga una densidad de píxeles razonable para el dispositivo.

Para ver un ejemplo, consulta LOGO_URI en la app TestDPC.

Método de código QR

El método de provisión de código QR establece y configura el modo de propietario del dispositivo mediante la escaneo de un código QR desde el asistente de configuración. que contiene una carga útil de pares clave-valor con toda la información necesaria para que el DPC aprovisione un dispositivo.

Tu consola de EMM debe proporcionar a los administradores de TI una forma de crear códigos QR para los dispositivos que quieran aprovisionar. El administrador de TI envía los códigos QR a sus usuarios finales, y los usuarios finales los escanean para aprovisionar sus dispositivos.

Casos de uso para el aprovisionamiento de códigos QR

Algunos dispositivos, como las tablets, no son compatibles con NFC. El aprovisionamiento de código QR es una forma conveniente de aprovisionar una flota distribuida de dispositivos que no admiten NFC. Un administrador de TI puede enviar códigos QR a sus usuarios para permitir el aprovisionamiento controlado por el usuario.

El aprovisionamiento de códigos QR no requiere una identidad de Google, como un dominio o una Cuenta de Google. Las organizaciones que usan Android, pero no Google Workspace, no tienen una identidad de Google.

Al igual que NFC, el aprovisionamiento de código QR permite realizar implementaciones de kiosco y de uso único en las que no se necesita ni desea una identidad de Google (o cualquier identidad). Por ejemplo, un dispositivo de kiosco en una tienda no le pertenece a nadie y no debería tener una identidad de usuario final.

Crear un código QR

Un código QR válido para aprovisionar códigos QR es una string de notación de objetos JavaScript® (JSON) codificada en UTF-8. Puedes incluir estas propiedades en un código QR válido:

Siempre obligatorio

Obligatorio si aún no hay un DPC instalado en el dispositivo

Se recomienda si el dispositivo aún no está conectado a una red Wi-Fi

Opcional

En este ejemplo, se compila un código QR válido:

{
"android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME":
"com.emm.android/com.emm.android.DeviceAdminReceiver",

"android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM":
"gJD2YwtOiWJHkSMkkIfLRlj-quNqG1fb6v100QmzM9w=",

"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION":
"https://path.to/dpc.apk",
    "android.app.extra.PROVISIONING_SKIP_ENCRYPTION": false,
    "android.app.extra.PROVISIONING_WIFI_SSID": "GuestNetwork",
    "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE": {
        "dpc_company_name": "Acme Inc.",
        "emm_server_url": "https://server.emm.biz:8787",
        "another_custom_dpc_key": "dpc_custom_value"
    }
}

Proceso de provisión de código QR

  1. El asistente de configuración le solicita al usuario que presione la pantalla de bienvenida 6 veces. Los toques deben realizarse en el mismo lugar de la pantalla.
  2. El asistente de configuración le solicita al usuario que se conecte a Internet para que pueda descargar un lector de códigos QR.
  3. Los Servicios de Google Play descargan un módulo que contiene un motor de reconocimiento de código QR.
  4. El usuario escanea el código QR que le proporcionó su administrador de TI.
  5. El asistente de configuración descarga tu app de DPC y, luego, inicia el proceso de aprovisionamiento del propietario del dispositivo mediante ACTION_PROVISION_MANAGED_DEVICE.

Método de cuentas de Google Play administradas

Un DPC puede usar el método de aprovisionamiento de las Cuentas de Google Play administradas para configurar el modo de propietario del dispositivo o el modo de propietario del perfil. Este método de aprovisionamiento está dirigido a organizaciones que no usan Google Workspace.

El método de aprovisionamiento de las Cuentas de Google Play administradas usa la Biblioteca de compatibilidad de DPC. Esta biblioteca cliente garantiza el funcionamiento sin problemas de las cuentas de Google Play administradas. También mantiene la compatibilidad con actualizaciones futuras del proceso de aprovisionamiento de las Cuentas de Google Play administradas.

Requisitos para aprovisionar dispositivos

  • El ID de la empresa se crea y se inscribe con una identidad de EMM, y se configura la ESA, como se describe en Crea e inscribe una empresa.
  • Tu consola de EMM conoce la identidad corporativa del usuario.
  • El usuario puede acceder a la app de DPC con credenciales aceptadas por tu consola de EMM, que por lo general son credenciales de correo electrónico corporativas.

Cómo configurar el modo de propietario del perfil

Puedes aprovisionar el modo de operación de propietario del perfil en un dispositivo que se usa en una situación de BYOD como un dispositivo personal.

  1. El usuario descarga manualmente tu DPC desde Google Play y lo inicia.
  2. El DPC aprovisiona el perfil de trabajo mediante ACTION_PROVISION_MANAGED_PROFILE.
  3. Completa los últimos pasos de la configuración.

Cómo configurar el modo de propietario del dispositivo

Debes aprovisionar el modo de funcionamiento de propietario del dispositivo durante la configuración inicial de un dispositivo nuevo o después de un restablecimiento de la configuración de fábrica. El modo de propietario del dispositivo no se puede aprovisionar en un dispositivo en ningún otro momento.

Durante la configuración del dispositivo, el usuario ingresa un token especial específico de DPC cuando se le solicita que agregue una cuenta. Un token tiene el formato afw#DPC_IDENTIFIER. Para un EMM llamado ACME, afw#acme instalará el DPC predeterminado del EMM de ACME. Cada EMM debe solicitar un identificador de DPC específico de Google antes de poder usarlo en el proceso de aprovisionamiento.

  1. El usuario enciende un dispositivo nuevo o en el que se restableció la configuración de fábrica y se inicia el asistente de configuración.
  2. Cuando se le solicita que agregue una cuenta, el usuario ingresa un token especial con el formato afw#DPC_IDENTIFIER que identifica el DPC de tu EMM.
  3. Con el identificador de DPC en el token, el asistente de configuración agrega una Cuenta de Google temporal al dispositivo. Esta cuenta temporal solo se usa para descargar el DPC de tu EMM desde Google Play y se quita en los pasos de configuración finales.
  4. El DPC aprovisiona el dispositivo mediante ACTION_PROVISION_MANAGED_DEVICE.
  5. Completa los últimos pasos de la configuración.

Pasos finales de configuración para todos los modos de operación

Realiza estos pasos solo después de que se completen los pasos iniciales para configurar el modo de propietario del perfil o el modo de propietario del dispositivo.

  1. El DPC se asegura de que el dispositivo sea compatible con Cuentas de Google Play administradas mediante la inicialización de la biblioteca de compatibilidad de DPC:

    AndroidForWorkAccountSupport androidForWorkAccountSupport =
      new AndroidForWorkAccountSupport(context, admin);
    androidForWorkAccountSupport.ensureWorkingEnvironment(callback);
    

    Si configuras el modo de propietario del dispositivo, este paso quitará la Cuenta de Google temporal que se agregó para descargar el DPC.

  2. El usuario accede al DPC con sus credenciales de EMM. Por lo general, estas son credenciales de correo electrónico corporativas.

  3. El DPC solicita las credenciales de la cuenta de Google Play administrada para el usuario corporativo autenticado desde la consola de EMM.

  4. Si la consola de EMM no tiene un userId de Google Play para el usuario, llama a Users.insert() a fin de crear un usuario nuevo. Si aprovisionas el modo de propietario del dispositivo, especifica una cuenta de dispositivo (para implementaciones de dispositivos dedicados) o una cuenta de usuario (para implementaciones de la empresa).

  5. Llama a Devices.update para establecer la política del dispositivo. Debes establecer la política antes de agregar la cuenta de Google Play administrada al dispositivo; de lo contrario, la política no se aplicará durante un período breve después de agregar la cuenta al dispositivo.

  6. La consola de EMM solicita las credenciales de la cuenta del userId mediante una llamada a Users.generateAuthenticationToken(). Este token de autenticación es de corta duración y no se puede volver a usar. El DPC debe usar el token para agregar la cuenta de manera programática (esto no es útil para el usuario final).

  7. La API de EMM de Google Play devuelve el token de autenticación a la consola de EMM.

  8. La consola de EMM reenvía el token de autenticación al DPC.

  9. El DPC agrega la cuenta de Google Play administrada al dispositivo mediante

    androidForWorkAccountSupport.addAndroidForWorkAccount(token,
      accountAddedCallback);
    

Método de la Cuenta de Google

Un DPC puede usar el método de aprovisionamiento de la Cuenta de Google para configurar el modo de propietario del dispositivo o el modo de propietario del perfil. Con el método de aprovisionamiento de la Cuenta de Google, el DPC guía al usuario por los pasos de aprovisionamiento después de que agrega su Cuenta de Google durante la configuración inicial del dispositivo.

Cuando un usuario ingresa las credenciales de su Cuenta de Google:

  • El servidor de autenticación de Google autentica la cuenta de usuario.
  • Luego, el servidor de autenticación se comunica con el servidor empresarial para ver si el dominio de la cuenta está registrado como un dominio de Google Workspace o uno administrado por EMM.
  • Si es así, el sistema descarga automáticamente el DPC asociado con el dominio de Google Play y lo instala.

Cómo configurar el modo de propietario del perfil

Puedes aprovisionar el modo de operación de propietario del perfil durante la configuración inicial de un dispositivo o cuando el usuario agrega una cuenta en Configuración > Agregar cuenta.

  1. Un usuario inicia la autenticación de la cuenta desde el asistente de configuración o desde Configuración > Agregar cuenta.
  2. GMSCore inicia el aprovisionamiento del perfil de trabajo con ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE.
  3. El DPC se descarga automáticamente en el dispositivo y se inicia con el controlador ACTION_GET_PROVISIONING_MODE para verificar que el aprovisionamiento de perfiles de trabajo sea compatible con el DPC.
  4. La plataforma realiza el aprovisionamiento de perfiles de trabajo.
  5. Cuando se aprovisiona el perfil de trabajo, el DPC recibe la transmisión ACTION_PROFILE_PROVISIONING_COMPLETE. El controlador ACTION_ADMIN_POLICY_COMPLIANCE del DPC se inicia en el perfil de trabajo. Una vez que se crea el perfil de trabajo, el DPC también se ejecuta dentro del perfil de trabajo. El DPC envía políticas para esa Cuenta de Google administrada, garantiza que el dispositivo no esté en estado vulnerado y verifica que se apliquen las políticas (por ejemplo, se requiere una contraseña).
  6. El DPC del perfil personal se inhabilita a sí mismo o el usuario lo quita.

Cómo configurar el modo de propietario del dispositivo o COPE

Debes aprovisionar el modo de funcionamiento de propietario del dispositivo durante la configuración inicial de un dispositivo nuevo o después de un restablecimiento de la configuración de fábrica. El modo de propietario del dispositivo no se puede agregar a un dispositivo en ningún otro momento.

  1. Un usuario inicia la autenticación de la cuenta desde el asistente de configuración.
  2. GMSCore inicia el aprovisionamiento del propietario del dispositivo mediante ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE. 3.El DPC se descarga automáticamente en el dispositivo y se inicia con el controlador GET_PROVISIONING_MODE para elegir el modo de aprovisionamiento deseado.
  3. La plataforma aprovisiona el dispositivo en el modo de aprovisionamiento deseado.
  4. Cuando se aprovisiona el dispositivo, el DPC recibe estas transmisiones y se inicia el controlador ACTION_ADMIN_POLICY_COMPLIANCE del DPC:
  5. El DPC usa el valor de Global.DEVICE_PROVISIONED para verificar que el dispositivo sea nuevo o que se haya restablecido la configuración de fábrica (no aprovisionado):
    • 0 Desaprovisionado.
    • 1 Aprovisionada.
  6. El DPC completa el proceso de aprovisionamiento enviando políticas para ese dispositivo administrado, asegurándose de que el dispositivo no esté en estado vulnerado y verificando que se apliquen las políticas (por ejemplo, se requiere una contraseña).

Consideraciones de implementación para el método de la Cuenta de Google

  • El DPC debe detectar el flujo de autenticación de la Cuenta de Google buscando elementos adicionales en el intent de inicio que se usó (consulta LaunchIntentUtil):

    • Cuenta de tipo android.accounts.Account indica que la cuenta se agregó desde el asistente de configuración o desde , lo que requiere que el DPC iniciado administre el dispositivo o el perfil.
    • is_setup_wizard de tipo Booleano Si es verdadero, el DPC se inició en el asistente de configuración antes de que este se completara, de lo contrario, desde o desde otro flujo.

    Esta es una verificación para comprobar si el DPC se lanzó como parte del método de la Cuenta de Google:

    boolean isSynchronousAuthLaunch(Intent launchIntent) {
      return launchIntent.hasExtra("is_setup_wizard");
    }
    
  • El DPC no debe llamar a finish() antes de que haya finalizado la configuración. También debe mostrar un código de resultado positivo (como RESULT_OK), ya que el DPC se inicia con startActivityForResult() y espera un resultado.

    El DPC debe esperar un código de resultado del proceso de aprovisionamiento antes de llamar a finish() si el flujo de configuración del DPC alcanza el punto de enviar un intent ACTION_PROVISION_*. Usa las devoluciones de llamada startActivityForResult() y onActivityResult() cuando inicies intents ACTION_PROVISION_*. (Consulta LaunchActivity y SetupSyncAuthManagement para ver ejemplos).

    Debido a la naturaleza potencialmente asíncrona del proceso de configuración, el DPC no puede confiar en un código de resultado de RESULT_OK para indicar que el aprovisionamiento se realizó correctamente. La única forma garantizada es confiar en las devoluciones de llamada DeviceAdminReceiver para el aprovisionamiento exitoso. RESULT_CANCELED indica que el usuario realizó una copia de seguridad en una parte síncrona del flujo de configuración, y el DPC debe reaccionar a esto.

    En este ejemplo, el DPC inicia el aprovisionamiento y espera el código de resultado de una actividad:

    Intent intent = new Intent(ACTION_PROVISION_MANAGED_PROFILE);
    startActivityForResult(intent, REQUEST_MANAGED_PROFILE);
    ...
    
    @Override
    public void onActivityResult(int req, int res, Intent i) {
        if (req == REQUEST_MANAGED_PROFILE) {
            if (res == Activity.RESULT_OK) {
                setResult(Activity.RESULT_OK);
                finish();
            } else {
                Toast.makeText(this, “Provisioning failed”,
                        Toast.LENGTH_SHORT).show();
            }
        }
    }
    
  • El DPC no debe intentar configurar el modo de operación de propietario del dispositivo si el dispositivo ya está aprovisionado (consulta ProvisioningStateUtil.isDeviceProvisioned()). En este ejemplo, el DPC verifica si el dispositivo está aprovisionado:

    public static boolean isDeviceProvisioned(Context context) {
    ContentResolver cr = context.getContentResolver();
        return
    Settings.Global.getInt(cr, DEVICE_PROVISIONED, 0) != 0;
    }
    
  • Opcional. El DPC puede usar el extra EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE cuando se inicia el aprovisionamiento para pasar información de estado de vuelta a su DeviceAdminReceiver (que, en el caso del propietario del perfil, se ejecuta dentro del perfil de trabajo). TestDPC usa este extra para ingresar un conjunto diferente de actividades en el flujo de la Cuenta de Google una vez que se completa el aprovisionamiento. Para obtener más información, consulta DeviceAdminReceiver.

    public class DeviceAdminReceiver extends android.app.admin.DeviceAdminReceiver
    {
      @Override
      public void onProfileProvisioningComplete(Context context, Intent intent) {
        // Retrieve the admin extras bundle, which we can use to determine the original context for
        // Test DPC's launch.
        PersistableBundle extras = intent.getParcelableExtra(
                EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE);
        ...
    
  • Para configurar un perfil de trabajo, el DPC debe migrar la cuenta agregada al perfil de trabajo nuevo. Para ello, el DPC debe pasar la cuenta proporcionada en el intent de inicio para ACTION_PROVISION_MANAGED_PROFILE.

  • El DPC debe proporcionar al usuario un llamado a la acción claro (como un botón Finalizar) para salir de la app al final de la configuración, de modo que el usuario no crea que llegó a un punto muerto en el flujo.

  • El DPC debe usar el tema del asistente de configuración o la biblioteca de diseño para que la experiencia del usuario sea fluida y se sienta bien integrada.

Método NFC

Un DPC puede usar el método de aprovisionamiento de NFC para configurar el modo de propietario del dispositivo. En el método de aprovisionamiento de NFC o etiqueta NFC, debes crear una app de programador de NFC que contenga las políticas iniciales y la configuración y los detalles de aprovisionamiento de Wi-Fi que requiere tu cliente para configurar el modo de operación de propietario del dispositivo. Cuando tú o tu cliente instalan la app de programador de NFC en un dispositivo con tecnología Android, ese dispositivo se convierte en el de programador.

Para aprovisionar un dispositivo, el administrador de TI quita un dispositivo nuevo de la caja y lo compara con el dispositivo del programador o la etiqueta NFC. El cambio de prioridad transfiere las configuraciones al dispositivo para que se conecte a Internet y descargue las políticas y los parámetros de configuración adecuados. Luego, tu DPC administra el dispositivo.

Después de aprovisionar un dispositivo, por un período breve, Google Play muestra contenido de consumidores no administrado en lugar de las apps y colecciones aprobadas que deben mostrarse. Esta demora puede durar desde unos minutos hasta una hora.

Crea la app de programador de NFC y el dispositivo de programador

En el caso de los dispositivos que ejecutan Android 10 o versiones anteriores, es posible usar Android Beam para completar un aprovisionamiento de NFC:

  1. Descarga la app de muestra del programador de NFC. Puedes usar la muestra tal como está sin adiciones o puedes modificarla para obtener los valores predeterminados.
  2. Instala la app de programador en el dispositivo elegido.
  3. Inicia la app de programador de NFC y selecciona Load Defaults para com.example.android.apis. (Este texto puede variar según los parámetros predeterminados que establezcas).

Aprovisiona el dispositivo de un cliente

  1. Transmite el dispositivo del programador o la etiqueta NFC con un dispositivo nuevo o uno que se haya restablecido a la configuración de fábrica.
  2. Verifica que el dispositivo permanezca en la pantalla inicial de Bienvenida que se muestra cuando se inicia. El texto se especifica en Ready to send:{...} en la app de programador.
  3. Espera mientras el DPC hace lo siguiente:
    1. Encripta el dispositivo.
    2. Si se trata de un dispositivo de acceso múltiple por división de códigos (CDMA): Activa el teléfono mientras se muestra una interfaz de usuario de telefonía (no se requiere interacción).
    3. Configura la conexión Wi-Fi.
    4. Descarga el archivo APK de com.example.android.apis.
    5. Instala com.example.android.apis.
    6. Establece el administrador de dispositivos de muestra en com.example.android.apis como el propietario del dispositivo.
    7. Muestra un "aviso" correcto cuando se activa el propietario del dispositivo.
  4. Después de regresar a la página principal (el asistente de configuración se omite automáticamente), verifica que com.example.android.apis esté configurado como propietario del dispositivo:
    1. En Configuración > Seguridad > Administradores de dispositivos, asegúrate de que no se pueda quitar el administrador de dispositivos de muestra.
    2. En Configuración > Usuarios > Usuarios y perfiles > Tú (propietario), asegúrate de que el propietario sea la única cuenta disponible (un dispositivo solo puede tener un propietario activo del dispositivo a la vez).

Recursos adicionales

NFC avanzado describe temas como trabajar con varias tecnologías de etiquetas, escribir en etiquetas NFC y despachar en primer plano.

Método de instalación de DPC manual

Para configurar el modo de propietario del perfil con el método de aprovisionamiento de instalación de DPC manual, el usuario descarga tu DPC desde Google Play y lo instala. Luego, el DPC guía al usuario durante el resto del proceso para configurar el propietario del perfil de la Cuenta de Google administrada.

El DPC puede agregar la Cuenta de Google administrada antes o después de crear el perfil de trabajo. Por ejemplo, el DPC puede crear un perfil de trabajo basado en las credenciales de EMM de un usuario en lugar de solicitar primero a la Cuenta de Google administrada.

Cómo configurar el modo de propietario del perfil

Primero, agrega la Cuenta de Google administrada

  1. El usuario descarga tu DPC desde Google Play y lo instala.
  2. El DPC agrega la Cuenta de Google administrada antes de crear el perfil de trabajo con AccountManager.addAccount().
  3. El DPC comienza a ejecutarse en el perfil personal e inicia el proceso para crear un perfil de trabajo mediante lo siguiente:
  4. El DPC del perfil de trabajo completa el proceso de aprovisionamiento. Una vez que se crea el perfil de trabajo, el DPC también se ejecuta dentro del perfil de trabajo. El DPC del perfil de trabajo completa el proceso de aprovisionamiento mediante el envío de políticas para esa Cuenta de Google administrada, lo que garantiza que el dispositivo no esté comprometido y verifica que se apliquen las políticas (por ejemplo, se requiere una contraseña).
  5. Cuando se aprovisiona el perfil de trabajo, el DPC recibe la transmisión ACTION_PROFILE_PROVISIONING_COMPLETE.
  6. El DPC del perfil personal se inhabilita a sí mismo o el usuario lo quita.

Primero, crea el perfil de trabajo

  1. El usuario descarga tu DPC desde Google Play y lo instala.
  2. El DPC comienza a ejecutarse en el perfil personal e inicia el proceso para crear un perfil de trabajo mediante lo siguiente:
  3. El DPC agrega la Cuenta de Google administrada mediante AccountManager.addAccount().
  4. El DPC recibe la transmisión ACTION_PROFILE_PROVISIONING_COMPLETE y lee EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE.
  5. El DPC del perfil de trabajo completa el proceso de aprovisionamiento. Una vez que se crea el perfil de trabajo, el DPC también se ejecuta dentro del perfil de trabajo. El DPC del perfil de trabajo completa el proceso de aprovisionamiento mediante el envío de políticas para esa Cuenta de Google administrada, lo que garantiza que el dispositivo no esté comprometido y verifica que las políticas se apliquen (por ejemplo, solicitar una contraseña).
  6. El DPC habilita el perfil de trabajo mediante DevicePolicyManager.setProfileEnabled().
  7. El DPC del perfil personal se inhabilita a sí mismo o el usuario lo quita.

  1. El método de la Cuenta de Google en Android 5.1 solo admite el modo de operación del propietario del perfil, y el usuario puede configurarlo únicamente desde Configuración > Agregar cuenta