Enregistrer et provisionner un appareil

Le provisionnement est le processus de configuration d'un appareil pour qu'il soit géré à l'aide de policies par un enterprise. Au cours du processus, un appareil installe Android Device Policy, qui permet de recevoir et d'appliquer les policies. Si le provisionnement réussit, l'API crée un objet devices, qui associe l'appareil à une entreprise.

L'API Android Management utilise des jetons d'enregistrement pour déclencher le processus de provisionnement. Le jeton d'enregistrement et la méthode de provisionnement que vous utilisez déterminent la propriété de l'appareil (personnel ou d'entreprise) et le mode de gestion (profil professionnel ou appareil entièrement géré).

Un système de quotas contrôle le nombre d'appareils que chaque projet peut gérer. Vous devez demander un quota d'appareils initial avant de pouvoir provisionner votre premier appareil.

Appareils personnels

Android 5.1 ou version ultérieure

Les appareils appartenant aux employés peuvent être configurés avec un profil professionnel. Un profil professionnel fournit un espace autonome pour les applications et les données professionnelles, distinct des applications et des données personnelles. La plupart des policies de gestion des applications, des données et d'autres éléments ne s'appliquent qu'au profil professionnel, tandis que les applications et les données personnelles de l'employé restent privées.

Pour configurer un profil professionnel sur un appareil personnel, créez un jeton d'enregistrement (assurez-vous que allowPersonalUsage est défini sur PERSONAL_USAGE_ALLOWED) et utilisez l'une des méthodes de provisionnement suivantes :

Appareils appartenant à l'entreprise pour un usage professionnel et personnel

Android 8 ou version ultérieure

La configuration d'un appareil appartenant à l'entreprise avec un profil professionnel permet d'utiliser l'appareil à des fins professionnelles et personnelles. Sur les appareils détenus par l'entreprise et dotés d'un profil professionnel :

Pour configurer un appareil détenu par l'entreprise avec un profil professionnel, créez un jeton d'enregistrement (assurez-vous que allowPersonalUsage est défini sur PERSONAL_USAGE_ALLOWED) et utilisez l'une des méthodes de provisionnement suivantes :

Appareils détenus par l'entreprise et réservés à un usage professionnel

Android 5.1 ou version ultérieure

La gestion intégrale des appareils est adaptée aux appareils détenus par l'entreprise et destinés exclusivement à un usage professionnel. Les entreprises peuvent gérer toutes les applications de l'appareil et appliquer l'ensemble des règles et commandes de l'API Android Management.

Il est également possible de verrouiller un appareil (via une règle) sur une seule application ou un petit ensemble d'applications pour répondre à un objectif ou un cas d'utilisation dédié. Ce sous-ensemble d'appareils entièrement gérés est appelé appareils dédiés. Les jetons d'enregistrement de ces appareils doivent avoir allowPersonalUsage défini sur PERSONAL_USAGE_DISALLOWED_USERLESS.

Pour configurer la gestion complète sur un appareil appartenant à l'entreprise, créez un jeton d'enregistrement en vous assurant que allowPersonalUsage est défini sur PERSONAL_USAGE_DISALLOWED ou PERSONAL_USAGE_DISALLOWED_USERLESS, puis utilisez l'une des méthodes de provisionnement suivantes.

Les règles peuvent avoir un impact sur la génération de l'UI lors de la préparation de l'appareil. Ces règles sont les suivantes :

Si vous souhaitez que les étapes de mot de passe s'affichent en même temps que l'installation des applications professionnelles et les fiches d'enregistrement de l'appareil lors de la préparation de l'appareil, nous vous suggérons de mettre à jour vos règles pour retarder le lancement de la génération de l'interface utilisateur en maintenant l'appareil dans un état de quarantaine (ce qui se produit s'il est enregistré sans règle associée) jusqu'à ce que vous spécifiiez la règle finale sélectionnée pour la configuration de l'appareil, renseignée avec les éléments pertinents pour vos besoins de configuration. Une fois le provisionnement de l'appareil terminé, vous pouvez modifier la règle si nécessaire.


Créer un jeton d'enregistrement

Présentation d'Android Management
Figure 1. Créez un jeton qui enregistre et applique "policy1" aux appareils. Le jeton expire au bout de 1 800 secondes (30 minutes).

Vous avez besoin d'un jeton d'enregistrement pour chaque appareil que vous souhaitez enregistrer (vous pouvez utiliser le même jeton pour plusieurs appareils). Pour demander un jeton d'enregistrement, appelez enterprises.enrollmentTokens.create. Les jetons d'enregistrement expirent par défaut au bout d'une heure, mais vous pouvez spécifier un délai d'expiration personnalisé (duration) pouvant aller jusqu'à environ 10 000 ans.

Une requête réussie renvoie un objet enrollmentToken contenant un enrollmentTokenId et un qrcode que les administrateurs informatiques et les utilisateurs finaux peuvent utiliser pour provisionner des appareils.

Spécifier une règle

Vous pouvez également spécifier un policyName dans la requête pour appliquer une règle en même temps qu'un appareil est enregistré. Si vous ne spécifiez pas de policyName, consultez Enregistrer un appareil sans règle.

Spécifier l'usage personnel

allowPersonalUsage détermine si un profil professionnel peut être ajouté à l'appareil lors du provisionnement. Définissez cette option sur PERSONAL_USAGE_ALLOWED pour permettre à un utilisateur de créer un profil professionnel (obligatoire pour les appareils personnels, facultatif pour les appareils appartenant à l'entreprise).

Exemption pour les jetons d'enregistrement existants

Certains clients utilisent des jetons d'enregistrement avec des dates d'expiration lointaines pour effectuer des enregistrements répétés. Pour éviter toute interruption de ces workflows existants, les jetons créés AVANT l'activation de l'exigence "S'authentifier avec Google" pour la première fois sont exemptés des nouvelles invites de connexion. Ces anciens jetons continueront de fonctionner comme avant, ce qui permettra aux utilisateurs d'enregistrer des appareils sans passer par le processus d'authentification Google.

Cependant, tous les jetons créés APRÈS l'activation de l'exigence d'authentification Google pour la première fois suivent les nouvelles règles d'authentification. Cela signifie que les appareils utilisant ces nouveaux jetons exigent que les utilisateurs s'authentifient conformément aux paramètres choisis par l'administrateur informatique. Pour les appareils dédiés qui ne doivent pas stocker de données utilisateur, assurez-vous que allowPersonalUsage est défini sur PERSONAL_USAGE_DISALLOWED_USERLESS pour éviter d'afficher l'écran d'authentification.

Appliquer l'authentification Google lors de l'enregistrement

Les EMM peuvent appliquer la connexion au compte Google lors de l'enregistrement de l'appareil en définissant les valeurs appropriées sur le jeton d'enregistrement ou le jeton de connexion. Cette configuration détermine si le bouton "Ignorer" est masqué sur l'écran de connexion Google. Lorsqu'elles sont définies, ces options remplacent la règle googleAuthenticationSettings à l'échelle de l'entreprise.

Options de configuration

Vous pouvez contrôler le comportement d'authentification à l'aide de l'objet googleAuthenticationOptions dans un EnrollmentToken ou un SigninDetail.

Champ Description Valeurs
authenticationRequirement Indique si l'utilisateur doit s'authentifier auprès de Google lors de l'enregistrement. AUTHENTICATION_REQUIREMENT_UNSPECIFIED: : revient aux paramètres par défaut de l'entreprise.
FACULTATIF : l'utilisateur voit l'écran de connexion Google, mais peut choisir de l'ignorer.
OBLIGATOIRE : L'utilisateur ne peut pas ignorer la connexion. Le bouton "Ignorer" est masqué.
requiredAccountEmail Adresse e-mail du compte Google géré spécifique que l'utilisateur doit utiliser.
Remarque : authenticationRequirement DOIT être défini sur REQUIRED si ce champ est utilisé.
Chaîne (par exemple, "user@enterprise.com")

Exemples de charges utiles JSON

Désactiver le bouton "Ignorer"

Pour masquer le bouton "Ignorer" et forcer l'utilisateur à se connecter avec un compte d'entreprise valide, définissez l'exigence d'authentification sur REQUIRED.

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

Exiger une adresse e-mail de compte spécifique

Pour forcer l'utilisateur à se connecter avec un compte désigné, définissez la chaîne requiredAccountEmail. La requête de création de jeton échouera avec une erreur INVALID_ARGUMENT si le champ d'exigence n'est pas défini sur REQUIRED.

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

À propos des QR codes

Les QR codes constituent une méthode efficace de préparation des appareils pour les entreprises qui gèrent de nombreuses règles différentes. Le QR code renvoyé par enterprises.enrollmentTokens.create est constitué d'une charge utile de paires clé-valeur contenant un jeton d'enregistrement et toutes les informations nécessaires à Android Device Policy pour provisionner un appareil.

Exemple de bundle de QR code

Le bundle inclut l'emplacement de téléchargement d'Android Device Policy et un jeton d'enregistrement.

{
    "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}"
    }
}

Vous pouvez utiliser le QR code renvoyé par enterprises.enrollmentTokens.create directement ou le personnaliser. Pour obtenir la liste complète des propriétés que vous pouvez inclure dans un bundle de QR codes, consultez Créer un QR code.

Pour convertir la chaîne qrcode en QR code scannable, utilisez un générateur de QR code tel que ZXing.


Méthodes de provisionnement

Cette section décrit différentes méthodes de provisionnement d'un appareil.

Ajouter un profil professionnel depuis "Paramètres"

Android 5.1 ou version ultérieure

Pour configurer un profil professionnel sur son appareil, un utilisateur peut :

  1. Accédez à Paramètres > Google > Configurer et restaurer.
  2. Appuyez sur Configurer votre profil professionnel.

Ces étapes lancent un assistant de configuration qui télécharge Android Device Policy sur l'appareil. L'utilisateur sera ensuite invité à scanner un QR code ou à saisir manuellement un jeton d'enregistrement pour terminer la configuration du profil professionnel.

Télécharger Android Device Policy

Android 5.1 ou version ultérieure

Pour configurer un profil professionnel sur son appareil, un utilisateur peut télécharger Android Device Policy depuis le Google Play Store. Une fois l'application installée, l'utilisateur sera invité à scanner un QR code ou à saisir manuellement un jeton d'enregistrement pour terminer la configuration du profil professionnel.

Android 5.1 ou version ultérieure

À l'aide du jeton d'enregistrement renvoyé par enrollmentTokens.create ou du signinEnrollmentToken de l'entreprise, générez une URL au format suivant :

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

Vous pouvez fournir cette URL aux administrateurs informatiques, qui pourront la transmettre à leurs utilisateurs finaux. Lorsqu'un utilisateur final ouvre le lien depuis son appareil, il est guidé tout au long de la configuration du profil professionnel.

URL de connexion

Avec cette méthode, les utilisateurs sont redirigés vers une page où ils peuvent saisir les informations supplémentaires requises pour finaliser le provisionnement. En fonction des informations saisies par l'utilisateur, vous pouvez calculer la règle appropriée pour l'utilisateur avant de procéder à la préparation de l'appareil. Exemple :

  1. Spécifiez votre URL de connexion dans enterprises.signInDetails[]. Définissez allowPersonalUsage sur PERSONAL_USAGE_ALLOWED si vous souhaitez autoriser un utilisateur à créer un profil professionnel (obligatoire pour les appareils personnels, facultatif pour les appareils appartenant à l'entreprise).

    Ajoutez le signinEnrollmentToken obtenu en tant qu'extra de provisionnement à un code QR, une charge utile NFC ou une configuration sans contact. Vous pouvez également fournir directement le signinEnrollmentToken aux utilisateurs.

  2. Sélectionnez l'une des options suivantes :

    1. Appareils détenus par l'entreprise : après avoir allumé un appareil neuf ou rétabli sa configuration d'usine, transmettez le signinEnrollmentToken à l'appareil (via un QR code, une connexion NFC, etc.) ou demandez aux utilisateurs de saisir le jeton manuellement. L'appareil ouvrira l'URL de connexion spécifiée à l'étape 1.
    2. Appareils personnels : demandez aux utilisateurs d'ajouter un profil professionnel depuis les paramètres. Lorsque l'utilisateur y est invité, il scanne un QR code contenant le signinEnrollmentToken ou saisit le jeton manuellement. L'appareil ouvrira l'URL de connexion spécifiée à l'étape 1.
    3. Appareils personnels : fournissez aux utilisateurs un lien de jeton d'enregistrement, où le jeton d'enregistrement est signinEnrollmentToken. L'appareil ouvre l'URL de connexion spécifiée à l'étape 1.
  3. Vérifiez si Google a déjà authentifié l'utilisateur. Obtenez les informations de préparation de l'appareil (lors de l'enregistrement de l'appareil) à l'aide du paramètre GET provisioningInfo et vérifiez la valeur du champ authenticatedUserEmail. Si ce champ contient une valeur, l'utilisateur a déjà été authentifié par Google et vous pouvez utiliser cette identité sans autre authentification.

  4. Si Google n'a pas encore authentifié l'utilisateur, votre URL de connexion doit l'inviter à saisir ses identifiants. En fonction de leur identité, vous pouvez déterminer la règle appropriée et obtenir les informations de préparation de l'appareil (lors de l'enregistrement de l'appareil) à l'aide du paramètre GET provisioningInfo.

  5. Appelez enrollmentTokens.create en spécifiant le policyId approprié en fonction des identifiants de l'utilisateur.

  6. Renvoyez le jeton d'enregistrement généré à l'étape 5 à l'aide d'une redirection d'URL, au format https://enterprise.google.com/android/enroll?et=<token>.

Appliquer l'authentification Google avec le flux d'URL de connexion

Lorsque vous utilisez SigninDetail pour les procédures de connexion tierces (via enterprises.create ou enterprises.patch), vous pouvez transmettre googleAuthenticationOptions. Cela permet d'appliquer des règles avant que l'utilisateur ne soit redirigé vers l'URL de connexion tierce.

Lorsqu'un EnrollmentToken est créé à la fin d'un flux d'URL de connexion, ses exigences d'authentification interagissent avec le SigninDetail initial :

  • Si l'utilisateur a ignoré la connexion Google, car elle n'était pas requise par SigninDetail, mais que le EnrollmentToken obtenu est défini sur REQUIRED, un message d'erreur s'affiche et l'utilisateur doit se connecter.
  • Si requiredAccountEmail est défini sur le jeton et que l'utilisateur s'est connecté avec une autre adresse appartenant à l'entreprise, il recevra une erreur "Compte incorrect" et devra se reconnecter avec l'adresse e-mail requise.

Méthode du QR code

Android 7.0 ou version ultérieure

Pour provisionner un appareil appartenant à l'entreprise, vous pouvez générer un QR code et l'afficher dans votre console EMM :

  1. Sur un appareil neuf ou dont la configuration d'usine a été rétablie, l'utilisateur (généralement un administrateur informatique) appuie six fois sur une même zone de l'écran. L'appareil invite alors l'utilisateur à scanner un QR code.
  2. L'utilisateur scanne le QR code que vous affichez dans votre console de gestion (ou une application similaire) pour enregistrer et provisionner l'appareil.

Méthode NFC

Android 6.0 ou version ultérieure

Cette méthode nécessite de créer une application de programmation NFC contenant le jeton d'enregistrement, les règles initiales et la configuration Wi-Fi, les paramètres et tous les autres détails de provisionnement requis par votre client pour provisionner un appareil entièrement géré ou dédié. Lorsque vous ou votre client installez l'application de programmation NFC sur un appareil Android, celui-ci devient l'appareil de programmation.

Pour en savoir plus sur la méthode NFC, consultez la documentation destinée aux développeurs de l'API Play EMM. Le site inclut également un exemple de code des paramètres par défaut transférés à un appareil via la technologie NFC. Pour installer Android Device Policy, définissez l'emplacement de téléchargement du package d'administration de l'appareil sur :

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

Méthode de l'identifiant DPC

Si Android Device Policy ne peut pas être ajouté à l'aide d'un QR code ou de la technologie NFC, un utilisateur ou un administrateur informatique peut suivre ces étapes pour provisionner un appareil appartenant à l'entreprise :

  1. Suivez l'assistant de configuration sur un appareil neuf ou dont la configuration d'usine a été rétablie.
  2. Saisissez les identifiants Wi-Fi pour connecter l'appareil à Internet.
  3. Lorsque vous êtes invité à vous connecter, saisissez afw#setup, ce qui télécharge les règles relatives aux appareils Android.
  4. Scannez un code QR ou saisissez manuellement un jeton d'enregistrement pour provisionner l'appareil.

Enregistrement sans contact

Android 8.0 ou version ultérieure (Pixel 7.1 ou version ultérieure)

Les appareils achetés auprès d'un revendeur sans contact autorisé sont éligibles à l'enregistrement sans contact, une méthode simplifiée permettant de préconfigurer les appareils pour qu'ils se provisionnent automatiquement au premier démarrage.

Les organisations peuvent créer des configurations contenant des détails de provisionnement pour leurs appareils sans contact, soit via le portail d'enregistrement sans contact, soit à l'aide de votre console EMM (voir l'API cliente d'enregistrement sans contact). Au premier démarrage, un appareil sans contact vérifie si une configuration lui a été attribuée. Si tel est le cas, l'appareil télécharge Android Device Policy, qui finalise ensuite la configuration de l'appareil à l'aide des options de provisionnement supplémentaires spécifiées dans la configuration qui lui est attribuée.

Si vos clients utilisent le portail d'enregistrement sans contact, ils doivent sélectionner Android Device Policy comme DPC EMM pour chaque configuration qu'ils créent. Pour obtenir des instructions détaillées sur l'utilisation du portail, y compris sur la création et l'attribution de configurations aux appareils, consultez le Centre d'aide Android Enterprise.

Si vous préférez que vos clients définissent et attribuent des configurations directement depuis votre console EMM, vous devez intégrer l'API cliente d'enregistrement sans contact. Lorsque vous créez une configuration, vous spécifiez des extras de provisionnement dans le champ dpcExtras. L'extrait JSON suivant montre un exemple de base de ce qu'il faut inclure dans dpcExtras, avec un jeton de connexion ajouté.

{
   "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}"
   }
}

Lancer une application pendant la configuration

setupaction
Figure 2 : Utilisez setupActions pour lancer une application pendant la configuration.

Dans policies, vous pouvez spécifier une application qu'Android Device Policy doit lancer lors de la configuration de l'appareil ou du profil professionnel. Par exemple, vous pouvez lancer une application VPN pour que les utilisateurs puissent configurer les paramètres VPN lors de la configuration. L'application doit renvoyer RESULT_OK pour signaler la fin de l'opération et permettre à Android Device Policy de terminer le provisionnement de l'appareil ou du profil professionnel. Pour lancer une application pendant la configuration :

Assurez-vous que le installType de l'application est REQUIRED_FOR_SETUP. Si l'application ne peut pas être installée ou lancée sur l'appareil, le provisionnement échoue.

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

Ajoutez le nom du package de l'application à setupActions. Utilisez title et description pour spécifier des instructions visibles par l'utilisateur.

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

Pour distinguer une application lancée depuis launchApp, la première activité lancée dans le cadre de l'application contient l'intent booléen supplémentaire com.google.android.apps.work.clouddpc.EXTRA_LAUNCHED_AS_SETUP_ACTION (défini sur true). Cet extra vous permet de personnaliser votre application selon qu'elle est lancée depuis setupActions ou par un utilisateur.

Une fois que l'application renvoie RESULT_OK, Android Device Policy effectue les étapes restantes requises pour provisionner l'appareil ou le profil professionnel.

Annuler l'enregistrement lors de la configuration

L'application lancée en tant que SetupAction peut annuler l'enregistrement en renvoyant RESULT_FIRST_USER.

L'annulation de l'enregistrement réinitialise un appareil appartenant à l'entreprise ou supprime le profil professionnel sur un appareil personnel.

Remarque : L'annulation de l'enregistrement déclenche l'action sans boîte de dialogue de confirmation de l'utilisateur. Il incombe à l'application d'afficher une boîte de dialogue d'erreur appropriée à l'utilisateur avant de renvoyer RESULT_FIRST_USER.

Appliquer une règle aux nouveaux appareils enregistrés

La méthode que vous utilisez pour appliquer des règles aux appareils nouvellement enregistrés dépend de vous et des exigences de vos clients. Voici les différentes approches que vous pouvez utiliser :

  • (Recommandé) Lorsque vous créez un jeton d'enregistrement, vous pouvez spécifier le nom de la règle (policyName) qui sera initialement associée à l'appareil. Lorsque vous enregistrez un appareil avec le jeton, la règle est automatiquement appliquée à l'appareil.

  • Définissez une règle comme règle par défaut pour une entreprise. Si aucun nom de règle n'est spécifié dans le jeton d'enregistrement et qu'il existe une règle nommée enterprises/<enterprise_id>/policies/default, chaque nouvel appareil est automatiquement associé à la règle par défaut au moment de l'enregistrement.

  • Abonnez-vous à un sujet Cloud Pub/Sub pour recevoir des notifications sur les nouveaux appareils enregistrés. En réponse à une notification ENROLLMENT, appelez enterprises.devices.patch pour associer l'appareil à une règle.

Enregistrer un appareil sans règle

Si un appareil est enregistré sans règle valide, il est placé en quarantaine. Les appareils mis en quarantaine sont bloqués pour toutes les fonctions de l'appareil jusqu'à ce qu'ils soient associés à une règle.

Si un appareil n'est pas associé à une règle dans un délai de cinq minutes, l'enregistrement de l'appareil échoue et la configuration d'usine de l'appareil est rétablie. L'état de mise en quarantaine de l'appareil vous permet d'implémenter des vérifications de licence ou d'autres processus de validation de l'enregistrement dans votre solution.

Exemple de workflow de vérification de licence

  1. Un appareil est enregistré sans règle par défaut ni règle spécifique.
  2. Vérifiez le nombre de licences restantes de l'entreprise.
  3. Si des licences sont disponibles, utilisez devices.patch pour associer une règle à l'appareil, puis décrémentez le nombre de licences. Si aucune licence n'est disponible, utilisez devices.patch pour désactiver l'appareil. L'API peut également rétablir la configuration d'usine de tout appareil qui n'est pas associé à une règle dans les cinq minutes suivant l'enregistrement.