Mode d’appareil partagé pour les appareils Android

Les employés de terrain, comme les vendeurs en magasin, les membres d’équipage et les techniciens d’intervention, utilisent souvent un appareil mobile partagé pour effectuer leur travail. Cela devient problématique quand ils commencent à partager des mots de passe ou des codes confidentiels pour accéder aux données des clients et de l’entreprise sur l’appareil partagé.

Le mode d’appareil partagé vous permet de configurer un appareil Android afin qu’il puisse être facilement partagé par plusieurs employés. Les employés peuvent se connecter et accéder rapidement aux informations client. Quand ils ont terminé leur journée ou leur tâche, ils peuvent se déconnecter de l’appareil et ce dernier est immédiatement prêt à être utilisé par l’employé suivant.

Le mode d’appareil partagé permet également de gérer les appareils avec des identités Microsoft.

Pour créer une application en mode d’appareil partagé, les développeurs et les administrateurs d’appareils cloud travaillent ensemble :

  • Les développeurs écrivent une application monocompte (les applications multicomptes ne sont pas prises en charge en mode d’appareil partagé), ajoutent "shared_device_mode_supported": true à la configuration de l’application et écrivent du code pour gérer des opérations comme la déconnexion des appareils partagés.
  • Les administrateurs d’appareils préparent l’appareil à partager en installant l’application d’authentification et en définissant l’appareil en mode partagé à l’aide de l’application d’authentification. Seuls les utilisateurs qui ont le rôle Administrateur d’appareil cloud peuvent mettre un appareil en mode partagé à l’aide de l’application d’authentification. Vous pouvez configurer l’appartenance à vos rôles organisationnels dans le centre d’administration Microsoft Entra sous :

Identité>Rôles et administrateurs>Rôles et administrateurs>Administrateur d’appareil cloud.

Cet article se concentre principalement sur les points sur lesquels les développeurs doivent réfléchir.

Applications monocomptes et multicomptes

Les applications écrites à l’aide du SDK de la bibliothèque d’authentification Microsoft (MSAL) peuvent gérer un seul compte ou plusieurs comptes. Pour plus d’informations, consultez Mode monocompte ou mode multicompte.

Les fonctionnalités de la plateforme d’identités Microsoft disponibles pour votre application varient selon que l’application s’exécute en mode monocompte ou en mode multicompte.

Les applications en mode d’appareil partagé fonctionnent uniquement en mode monocompte.

Important

Les applications qui ne prennent en charge que le mode multicompte ne peuvent pas s’exécuter sur un appareil partagé. Si un employé charge une application qui ne prend pas en charge le mode monocompte, elle ne s’exécutera pas sur l’appareil partagé.

Les applications écrites avant la publication du SDK MSAL s’exécutent en mode multicompte et doivent être mises à jour pour prendre en charge le mode monocompte avant de pouvoir s’exécuter sur un appareil en mode partagé.

Prise en charge à la fois d’un seul compte et de plusieurs comptes

Votre application peut être conçue pour prendre en charge l’exécution à la fois sur des appareils personnels et sur des appareils partagés. Si votre application prend actuellement en charge plusieurs comptes et que vous souhaitez prendre en charge le mode d’appareil partagé, ajoutez la prise en charge du mode monocompte.

Vous pouvez également souhaiter que votre application change de comportement en fonction du type d’appareil sur lequel elle s’exécute. Utilisez ISingleAccountPublicClientApplication.isSharedDevice() pour déterminer quand elle doit exécuter en mode monocompte.

Il existe deux interfaces différentes qui représentent le type d’appareil sur lequel se trouve votre application. Lorsque vous demandez une instance d'application à partir de la fabrique d'applications de MSAL, l'objet d'application approprié est automatiquement fourni.

Le modèle d’objet suivant illustre le type d’objet que vous pouvez recevoir et ce qu’il signifie dans le contexte d’un appareil partagé :

public client application inheritance model

Vous devez effectuer une vérification de type et effectuer un forçage de type (cast) vers l’interface appropriée quand vous obtenez votre objet PublicClientApplication. Le code suivant vérifie si des modes sont multicomptes ou monocomptes, et caster en conséquence l’objet d’application :

private IPublicClientApplication mApplication;

        // Running in personal-device mode?
        if (mApplication instanceOf IMultipleAccountPublicClientApplication) {
          IMultipleAccountPublicClientApplication multipleAccountApplication = (IMultipleAccountPublicClientApplication) mApplication;
          ...
        // Running in shared-device mode?
        } else if (mApplication instanceOf ISingleAccountPublicClientApplication) {
           ISingleAccountPublicClientApplication singleAccountApplication = (ISingleAccountPublicClientApplication) mApplication;
            ...
        }

Les différences suivantes s’appliquent selon que votre application s’exécute sur un appareil partagé ou sur un appareil personnel :

Appareil en mode partagé Appareil personnel
Comptes (Accounts) Un seul compte Plusieurs comptes
Connexion Global Global
Déconnexion Global Chaque application peut contrôler si la déconnexion est locale sur l’application.
Types de comptes pris en charge Comptes professionnels uniquement Comptes personnels et professionnels pris en charge

Raisons de vouloir prendre en charge uniquement le mode monocompte

Si vous écrivez une application destinée à être utilisée uniquement par des employés de terrain avec un appareil partagé, nous vous recommandons d’écrire votre application pour prendre en charge uniquement le mode monocompte. Il inclut la plupart des applications concentrées sur les tâches, comme les applications de dossiers médicaux, les applications de facturation et la plupart des applications métier. La prise en charge uniquement du mode monocompte simplifie le développement, car vous n’avez pas besoin d’implémenter les autres fonctionnalités qui font partie des applications multicomptes.

Ce qui se passe quand le mode de l’appareil change

Si votre application s’exécute en mode multicomptes et qu’un administrateur met l’appareil en mode d’appareil partagé, tous les comptes de l’appareil sont effacés de l’application et cette dernière passe en mode monocompte.

Applications Microsoft qui prennent en charge le mode d’appareil partagé

Ces applications Microsoft prennent en charge le mode d’appareil partagé Microsoft Entra :

MDM tiers qui prennent en charge le mode appareil partagé

Cette gestion des périphériques mobiles (GPM) tierce prend en charge le mode de périphérique partagé Microsoft Entra :

Déconnexion des appareils partagés et cycle de vie global des applications

Quand un utilisateur se déconnecte, vous devez prendre des mesures pour protéger sa confidentialité et ses données. Par exemple, si vous créez une application de dossiers médicaux, vous devez garantir la suppression des dossiers des patients précédemment affichés quand l’utilisateur se déconnecte. Votre application doit être préparée à la protection des données personnelles et procéder à une vérification chaque fois qu’elle passe au premier plan.

Quand votre application utilise MSAL pour déconnecter l’utilisateur dans une application en cours d’exécution sur un appareil en mode partagé, le compte connecté et les jetons mis en cache sont supprimés de l’application et de l’appareil.

Le diagramme suivant présente le cycle de vie global des applications et les événements courants qui peuvent se produire pendant que votre application s’exécute. Le diagramme présente les étapes effectuées à compter du lancement d’une activité, la connexion et la déconnexion d’un compte, ainsi que la façon dont des événements tels que la suspension, la reprise et l’arrêt de l’activité s’intègrent.

Shared device app lifecycle

Étapes suivantes

Pour plus d’informations sur l’exécution d’une application de travailleur de première ligne sur un mode partagé sur un appareil Android, consultez :